You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

GitHub Actions工作流异常:自动创建Tag/Release未触发CD工作流

解决方案:自动创建Tag/Release后触发Deploy工作流

我来帮你搞定这个问题!你遇到的情况是GitHub Actions的默认安全限制导致的:用工作流自带的GITHUB_TOKEN创建的Tag或Release,不会触发新的工作流运行,这是GitHub为了防止无限循环触发设置的防护机制。而手动创建时用的是你个人的用户身份令牌,所以能正常触发Code Deploy。

解决方法:用个人访问令牌(PAT)替代默认GITHUB_TOKEN

你需要生成一个拥有仓库操作权限的PAT,替换工作流里的默认令牌,这样创建Tag/Release的操作就能触发后续的Deploy工作流了。

步骤1:生成个人访问令牌(PAT)

在GitHub个人设置中创建新的PAT,勾选repo权限(确保拥有创建Tag、Release的权限),保存好生成的令牌内容。

步骤2:将PAT添加到仓库Secrets

进入你的仓库 → SettingsSecrets and variablesActions,点击New repository secret,将刚才的PAT命名为REPO_PAT(名字可自定义,需和后续工作流变量名对应)并保存。

步骤3:修改Code Int工作流代码

inrisk.packages.ci.yml中两处GITHUB_TOKEN替换为你刚添加的REPO_PAT,修改后的代码如下:

name: Code Int
on:
  push:
    paths:
      - 'infra/**'
jobs:
  ci:
    runs-on: ubuntu-latest
    steps:
      # Checks-out to $GITHUB_WORKSPACE
      - uses: actions/checkout@v2
      - name: Basic Checks
        run: |
          whoami
          ls -lah
          pwd
      - uses: actions/setup-node@v1
      # Create a new release when on develop which triggers the deployment
      - name: Bump version and push tag
        if: github.ref == 'refs/heads/develop'
        uses: mathieudutour/github-tag-action@v4.5
        id: tag_version
        env:
          GITHUB_TOKEN: ${{ secrets.REPO_PAT }}  # 替换为自定义PAT
      - name: Create Release
        if: github.ref == 'refs/heads/develop'
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.REPO_PAT }}  # 替换为自定义PAT
        with:
          tag_name: ${{ steps.tag_version.outputs.new_tag }}
          release_name: Release ${{ steps.tag_version.outputs.new_tag }}
          draft: false
          prerelease: false

验证修改效果

推送代码到develop分支,等待Code Int工作流完成Tag和Release的创建,此时Code Deploy工作流会自动被触发,效果和手动创建Tag/Release时一致。

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

火山引擎 最新活动