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

如何在合并到master或VERSION含b时触发GitHub Action发布任务

解决GitHub Actions中添加分支或VERSION文件内容的发布条件

要实现合并到master分支或者仓库根目录VERSION文件包含字母b时发布包的需求,你需要在现有Workflow中添加两个关键修改:

  1. 添加读取VERSION文件内容的步骤,将内容存入环境变量
  2. 修改上传步骤的if条件,使用逻辑或(||)同时判断两个条件

以下是修改后的完整Workflow代码:

publish:
    needs: [build]
    runs-on: [self-hosted, generic-linux]
    container: python:3
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4  # 新增:需要检出代码才能读取VERSION文件
        with:
          fetch-depth: 1

      - name: Read VERSION file content
        id: get_version
        run: echo "VERSION_CONTENT=$(cat VERSION)" >> $GITHUB_ENV  # 读取VERSION内容存入环境变量

      - name: Download artifacts
        uses: actions/download-artifact@v2
        with:
          name: package
          path: ./dist

      - name: Install requirements
        run: |
          pip install --upgrade pip
          pip install --upgrade --prefer-binary twine

      - name: Upload to artifactory
        # 修改if条件:master分支 或者 VERSION包含字母b
        if: ${{ github.ref == 'refs/heads/master' || contains(env.VERSION_CONTENT, 'b') }}
        env:
          TWINE_REPOSITORY_URL: https://artifactory.example.com/artifactory/api/pypi/pypi-all
          TWINE_REPOSITORY: pypi-all
          TWINE_USERNAME: "${{ secrets.PUBLISH_USERNAME }}"
          TWINE_PASSWORD: "${{ secrets.PUBLISH_BEARER_TOKEN }}"
        run: |
          twine upload --skip-existing --verbose dist/*

关键说明:

  • 新增Checkout repository步骤:因为需要访问仓库里的VERSION文件,必须先检出代码到runner环境中
  • Read VERSION file content步骤:通过cat VERSION读取文件内容,写入GITHUB_ENV环境变量,后续条件判断可以直接调用env.VERSION_CONTENT
  • 上传步骤的if条件:使用||实现逻辑或,只要满足其中一个条件就会执行上传操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:15:24