GitHub Actions的release created工作流触发不生效如何解决?
问题根因
GitHub出于防止工作流循环触发的安全限制,使用默认GITHUB_TOKEN执行的所有操作,都不会触发新的工作流运行。你在主发布工作流中使用${{ github.token }}调用softprops/action-gh-release创建release,自然不会触发另一个监听release: created事件的工作流。
另外你提供的主发布工作流还有两处语法/逻辑错误,也需要先修正:
actions/checkout@v2步骤的ref参数配置缺少结尾的},正确写法为ref: ${{ github.ref }}- 你在release步骤引用了
steps.version.outputs.version作为release名称,但工作流中没有定义id: version的步骤来输出版本号,同时tag_name直接使用github.ref会生成指向main分支的异常标签,不符合常规版本发布规范。
解决方案
方案一:替换为个人访问令牌(PAT)(最常用)
- 登录GitHub账号,进入「设置→开发者设置→Personal access tokens」,创建一个勾选
repo权限的PAT - 进入对应仓库的「Settings→Secrets and variables→Actions」,将上述PAT新增为仓库机密,命名为
REPO_PAT - 修改主发布工作流的release步骤,替换token参数:
- name: Release uses: softprops/action-gh-release@v1 with: draft: false body_path: CHANGELOG.md name: ${{ steps.version.outputs.version }} # 需提前补充version输出步骤 tag_name: ${{ steps.version.outputs.version }} # 替换为实际的版本标签 token: ${{ secrets.REPO_PAT }} # 替换原来的github.token
修改完成后重新运行主工作流,新生成的release即可正常触发第二个工作流。
方案二:主工作流直接调用目标工作流
如果不想额外创建PAT,也可以在主发布工作流的release步骤执行完成后,直接通过workflow_call或者手动触发的方式调用第二个工作流,规避触发事件限制。
内容的提问来源于stack exchange,提问作者marcuse
相关产品推荐
相关产品推荐

