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

Fum*_*ita 3 github-actions

我创建了一个工作流程,在推送分支 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)

Gui*_*urd 7

根据官方文档(从工作流触发工作流) ,出现这个问题的原因是:

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

为了使其发挥作用:

如果您确实想要从工作流运行中触发工作流,则可以使用个人访问令牌而不是GITHUB_TOKEN触发需要令牌的事件。您需要创建个人访问令牌并将其存储为秘密。为了最大限度地降低 GitHub Actions 使用成本,请确保您不会创建递归或意外的工作流程运行。有关创建个人访问令牌的详细信息,请参阅“创建个人访问令牌”。有关将个人访问令牌存储为机密的详细信息,请参阅“创建和存储加密机密” 。

如果您不熟悉这个GITHUB_TOKEN概念并且想要了解有关其用法的更多背景信息,我建议您查看官方文档中的此部分