GitHub操作工作流不响应其他工作流中的推送事件



我创建了一个工作流,该工作流在推送分支a时自动将分支a合并到分支B,并在推送B时运行。但是,当推送分支B时,工作流不会运行。这是GitHub规范吗?如果是,我想知道是否有文件或问题明确说明了这一点。

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
name: CI-2
on:
push:
branches: [ "B" ]
jobs:
build:
runs-on: ubuntu-latest
steps:

- name: Test
run: echo Hello

根据官方文档(从工作流触发工作流(,出现此问题是因为:

使用存储库的GITHUB_TOKEN执行任务时,由GITHUB_TOKEN触发的事件将不会创建新的工作流运行。这样可以防止意外创建递归工作流运行。例如,如果工作流运行使用存储库的GITHUB_TOKEN推送代码,则即使存储库包含配置为在推送事件发生时运行的工作流,新工作流也不会运行。

要使其工作:

如果您确实希望从工作流运行中触发工作流,可以使用个人访问令牌而不是GITHUB_TOKEN来触发需要令牌的事件。您需要创建一个个人访问令牌,并将其作为机密存储。为了最大限度地降低GitHub操作的使用成本,请确保不会创建递归或意外的工作流运行。有关创建个人访问令牌的更多信息;正在创建个人访问令牌"有关将个人访问令牌存储为秘密的更多信息;创建和存储加密机密">

如果您不熟悉GITHUB_TOKEN的概念,并且想了解更多关于其用法的上下文,我建议您从官方文档中查看此部分。

最新更新