You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions流水线中添加文件修改与Robot处理步骤?

如何在GitHub Actions pre-release流水线中新增sed注释+Robot推理流程

你需要把新增流程插入到自动发布步骤之后、准备提交文件步骤之前(也就是你标注的PROBABLY HERE SHOULD BE MY CODE (?)区域)。以下是具体修改方案:

新增步骤说明

  1. 先解压package目录里的opencs.ttl.gz到临时目录,方便编辑
  2. 执行sed命令注释指定行(注意把HTML转义的"换成实际双引号)
  3. 下载Robot工具(如果容器未预装)
  4. 运行Robot推理命令处理修改后的TTL文件
  5. 将处理后的文件重新压缩,替换回package目录(确保自动发布和后续pages推送都用处理后的文件)

修改后的完整流水线代码

name: "pre-release"

on:
  push:
    branches:
      - main

jobs:
  pre-release:
    name: "Pre-release"
    runs-on: "ubuntu-latest"
    container: ghcr.io/opencs-ontology/ci-worker:main

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          path: opencs

      - name: "Package ontology"
        run: python /app/package.py opencs package dev

      - uses: "marvinpinto/action-automatic-releases@v1.2.1"
        with:
          repo_token: "${{ secrets.GITHUB_TOKEN }}"
          automatic_release_tag: "dev"
          prerelease: true
          title: "Development build"
          files: package/*

      # 新增的sed注释+Robot推理流程开始
      - name: "Create temp directory for processing"
        run: mkdir -p temp

      - name: "Extract opencs.ttl from compressed package"
        run: gzip -cd package/opencs.ttl.gz > temp/opencs.ttl

      - name: "Comment specified lines with sed"
        run: |
          sed -i '15 s/^/                     foaf:name "XYZ".] #/' temp/opencs.ttl
          sed -i '16 s/^/#/' temp/opencs.ttl
          sed -i '21 s/^/#/' temp/opencs.ttl

      - name: "Download Robot tool"
        run: wget https://github.com/ontodev/robot/releases/download/v1.9.0/robot.jar -O temp/robot.jar

      - name: "Run Robot reasoning"
        run: java -jar temp/robot.jar reason --reasoner HermiT --axiom-generators "PropertyAssertion" --input temp/opencs.ttl --output temp/output_opencs2.ttl

      - name: "Replace original package with processed file"
        run: gzip -c temp/output_opencs2.ttl > package/opencs.ttl.gz
      # 新增流程结束

      - name: "Prepare ontology files for commit"
        run: |
          mkdir output_files
          gzip -cd package/opencs.ttl.gz > output_files/opencs.ttl
          gzip -cd package/opencs.rdf.gz > output_files/opencs.rdf
          gzip -cd package/opencs.nt.gz > output_files/opencs.nt
      - name: "Push the files to the Github Pages repository"
        uses: "cpina/github-action-push-to-another-repository@main"
        env:
          SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
        with:
          source-directory: 'output_files'
          destination-github-username: 'opencs-ontology'
          destination-repository-name: 'opencs-ontology.github.io'
          user-name: ci-worker
          target-directory: /releases/latest
          target-branch: main

注意事项

  • 如果你的ci-worker容器已经预装了Robot工具,可以去掉Download Robot tool步骤,直接用robot reason ...命令替代java -jar temp/robot.jar ...
  • 确认sed命令中的行号(15、16、21)在流水线环境中的文件里是正确的,避免因文件格式差异导致注释错误
  • 处理后的文件会替换原package里的opencs.ttl.gz,因此自动发布的dev版本和推送到pages的文件都会是经过处理的版本

内容的提问来源于stack exchange,提问作者Klaudyna Niedzin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:20:33