推送事件不会触发推送路径上的工作流(github 操作)
Posted
技术标签:
【中文标题】推送事件不会触发推送路径上的工作流(github 操作)【英文标题】:Push event doesn't trigger workflow on push paths (github actions) 【发布时间】:2021-08-05 14:18:36 【问题描述】:我目前正在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
工作流将触发。
但是,我不明白为什么1st
工作流完成后2nd
工作流不会触发,即使report.txt
文件在默认分支上更新。
编辑: 我知道我可以使用其他触发事件类型(例如:repository_dispatch
或workflow_run
)触发2nd
工作流。但我正在尝试通过另一个工作流程上的git push
命令来实现。
问题
我是否错过了1st
工作流中的某些内容以使其触发2nd
,或者我是否应该在2nd
工作流中添加某些内容以使其由1st
触发?
【问题讨论】:
感谢您的 cmets 解决了这个问题,所以我想我会说谢谢 没问题!我很高兴它有所帮助:D 【参考方案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
【讨论】:
解决了!谢谢:D 我错过了关于 GITHUB_TOKEN 没有触发新的工作流程运行的观点。以上是关于推送事件不会触发推送路径上的工作流(github 操作)的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序暂停时,WNS 推送通知永远不会触发 Activated 事件
如何使用 BigQuery 计算 GitHub 上的推送事件?