我创建了一个工作流程,在推送分支 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
根据官方文档(从工作流程触发工作流程) https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow,出现此问题的原因是:
当您使用存储库的GITHUB_TOKEN
执行任务,触发的事件GITHUB_TOKEN
不会创建新的工作流程运行。这可以防止您意外创建递归工作流运行。例如,如果工作流运行使用存储库的GITHUB_TOKEN
,即使存储库包含配置为在推送事件发生时运行的工作流,新工作流也不会运行。
为了使其发挥作用:
如果您确实想从工作流程运行中触发工作流程,您可以使用个人访问令牌代替GITHUB_TOKEN
触发需要令牌的事件。您需要创建个人访问令牌并将其存储为秘密。为了最大限度地降低 GitHub Actions 使用成本,请确保您不会创建递归或意外的工作流程运行。有关创建个人访问令牌的更多信息,请参阅“创建个人访问令牌。 https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token“ 有关将个人访问令牌存储为机密的更多信息,请参阅“创建和存储加密的秘密。 https://docs.github.com/en/actions/security-guides/encrypted-secrets"
如果您不熟悉GITHUB_TOKEN
概念并希望获得有关其用法的更多背景信息,我建议检查此部分来自官方文档 https://docs.github.com/en/actions/security-guides/automatic-token-authentication.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)