自动进行PR合并,然后打开新的PR



我有一个名为stage的分支,目前有一个在标记PR(合并到阶段分支(时运行的工作流,我目前正在尝试创建一个工作流,如果分支成功自动合并,就会发生

例如,以下是stage分支的工作流程示例:

name: PR opened to stage
on:
pull_request:
types: [labeled]
branches: [ stage ]
jobs:
audit-checks:
runs-on: self-hosted
steps:
- uses: actions/checkout@v2
if: contains(github.event.pull_request.labels.*.name, 'ready')
- name: Enable Auto Merge
uses: peter-evans/enable-pull-request-automerge@v1
if: contains(github.event.pull_request.labels.*.name, 'ready')
with:
token: ${{ secrets.GITHUB_TOKEN }}
pull-request-number: ${{ github.event.pull_request.number }}
merge-method: merge

这是另一个工作流,当要暂存的PR关闭时,应该运行该工作流。我还有一个步骤,检查标签是否包括ready,并应该为另一个分支创建另一个PR:

name: ready for prod test
on:
pull_request:
types: [closed]
branches: [ stage ]
jobs:
audit-checks:
runs-on: self-hosted
steps:
- uses: actions/checkout@v2
- name: automate PR creation for prod
if: |
${{ github.event.pull_request.merged }} && contains(github.event.pull_request.labels.*.name, 'ready')
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: stage
base: prod
labels: ready
title: Automated PR opened 

看起来,当PR最初被打开并标记为ready时,第一个工作流运行得很好。然而,一旦该工作流启用了自动合并,并且它实际上是自动合并的(在工作流完成时(,第二个工作流就永远不会被触发。

有没有可能第二个工作流在第一个工作流完成之前就以某种方式运行了,但实际上并没有因此做任何事情?我不确定这在我的第二份工作中有什么(至少现在还没有(,因为它甚至还没有运行(或者运行并失败(。

我在这里找到了答案:https://docs.github.com/en/actions/security-guides/automatic-token-authentication

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

相关内容

最新更新