推送事件不会触发推送路径上的工作流(github 操作)

时间:2021-05-15 19:54:58

标签: github-actions

我目前正在 this repository 上测试 Github Actions 工作流程。

上下文

我正在尝试使用 this workflow (1st):

 on: 
   workflow_dispatch:
 
 jobs:
   job:
   runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v2
       - run: |
           date > report.txt
           git config user.name github-actions
           git config user.email github-actions@github.com
           git add .
           git commit -m "generate or update report.txt file"
           git push

触发 this workflow (2nd):

on:
  push:
    paths:
      - '**/report.txt'

  pull_request:
    paths:
      - '**/report.txt'

jobs:
  job:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Report .txt file has been updated"

我尝试了什么

我按照 Github Action Documentation 使用 Filter Pattern 实现了 2nd 工作流程。

当我在本地更新 report.txt 文件,然后提交代码并将其推送到存储库时,2nd 工作流会触发。

但是,我不明白为什么 2nd 工作流在 1st 工作流完成时没有触发,即使 report.txt 文件在默认分支上更新。< /p>

编辑: 我知道我可以使用其他触发事件类型(例如:2ndrepository_dispatch)触发 workflow_run 工作流。但我正在尝试通过另一个工作流上的 git push 命令执行此操作。

问题

我是否错过了 1st 工作流中的某些内容以使其触发 2nd,或者我应该在 2nd 工作流中添加一些内容以使其由 {{1} } 一个?

1 个答案:

答案 0 :(得分:1)

不,您没有遗漏工作流程中的任何内容。

您只需要一个不同的令牌。

当您使用 actions/checkout 时,它使用 GITHUB_TOKEN 进行身份验证,并且根据 documentation 它不会触发新的工作流运行:

<块引用>

当你使用仓库的 GITHUB_TOKEN 代表执行任务时 在 GitHub Actions 应用程序中,由 GITHUB_TOKEN 触发的事件将 不创建新的工作流运行。这可以防止您不小心 创建递归工作流运行。

要使其工作,您需要生成一个 PAT (Personal Access Token),将其存储在您的存储库机密中,并在您的结帐步骤中使用它:

- uses: actions/checkout@v2
  with:
    token: ${{ secrets.YOUR_PAT_TOKEN }}
相关问题