我创建了一个工作流程,在推送分支 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
Run Code Online (Sandbox Code Playgroud)
name: CI-2
on:
push:
branches: [ "B" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Test
run: echo Hello
Run Code Online (Sandbox Code Playgroud)
根据官方文档(从工作流触发工作流) ,出现这个问题的原因是:
当您使用存储库
GITHUB_TOKEN执行任务时,触发的事件GITHUB_TOKEN不会创建新的工作流运行。这可以防止您意外创建递归工作流运行。例如,如果工作流运行使用存储库的 推送代码GITHUB_TOKEN,则即使存储库包含配置为在推送事件发生时运行的工作流,新工作流也不会运行。
为了使其发挥作用:
如果您确实想要从工作流运行中触发工作流,则可以使用个人访问令牌而不是
GITHUB_TOKEN触发需要令牌的事件。您需要创建个人访问令牌并将其存储为秘密。为了最大限度地降低 GitHub Actions 使用成本,请确保您不会创建递归或意外的工作流程运行。有关创建个人访问令牌的详细信息,请参阅“创建个人访问令牌”。有关将个人访问令牌存储为机密的详细信息,请参阅“创建和存储加密机密” 。
如果您不熟悉这个GITHUB_TOKEN概念并且想要了解有关其用法的更多背景信息,我建议您查看官方文档中的此部分。
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |