GitHub Actions工作流:自动推送分支B时关联工作流未触发咨询
GitHub Actions工作流推送后不触发后续工作流的原因及解决方案
问题原因
这是GitHub的既定规范。默认情况下,通过GitHub Actions工作流使用GITHUB_TOKEN发起的推送、创建标签等操作,不会触发新的工作流运行——这是为了避免出现无限循环(比如工作流A推送触发工作流B,工作流B又推送触发工作流A)。
你的CI工作流执行git push origin B时,使用的是GitHub自动提供的GITHUB_TOKEN,这个操作产生的推送事件会被GitHub自动忽略,因此不会触发监听B分支推送的CI-2工作流。
解决方案
如果需要让工作流发起的推送触发后续工作流,可以改用**个人访问令牌(PAT)**代替默认的GITHUB_TOKEN:
- 在GitHub账户的「Settings」→「Developer settings」→「Personal access tokens」中创建一个具备
repo权限的PAT。 - 将这个PAT添加到仓库的「Settings」→「Secrets and variables」→「Actions」中,命名为比如
PAT_TOKEN。 - 修改CI工作流中的推送步骤,使用PAT进行身份验证:
- name: Merge branch B run: | git fetch git checkout B git merge A git remote set-url origin https://${{ secrets.PAT_TOKEN }}@github.com/[你的用户名]/[你的仓库名].git git push origin B
原工作流代码
CI工作流
name: CI on: push: branches: [ "A" ] jobs: build: runs-on: ubuntu-latest steps: - name: Merge branch B run: | git fetch git checkout B git merge A git push origin B
CI-2工作流
name: CI-2 on: push: branches: [ "B" ] jobs: build: runs-on: ubuntu-latest steps: - name: Test run: echo Hello
内容的提问来源于stack exchange,提问作者Fumihito Morita
相关产品推荐
相关产品推荐

