[英]Trigger a github workflow before running another workflow on : release [created]
[英]GitHub Actions on release created workflow trigger not working
我在我的存儲庫的主分支上實施了一個GitHub 操作工作流,它在 GitHub 中創建了我的 package 的新版本。 然后我實現了另一個工作流程,應該在創建發布時觸發。 但是,此觸發器不起作用。
請注意 GitHub放棄了自己的
actions/create-release@v1
項目,並建議使用softprops 發布動作。
我的工作流模板如下:
name: Main release
on:
push:
branches:
- main
jobs:
release:
name: 'Release main'
runs-on: ubuntu-latest
steps:
- name: 'Checkout source code'
uses: 'actions/checkout@v2'
with:
ref: ${{ github.ref }
- name: Release
uses: softprops/action-gh-release@v1
with:
draft: false
body_path: CHANGELOG.md
name: ${{ steps.version.outputs.version }}
tag_name: ${{ github.ref }}
token: ${{ github.token }}
我on:release:created
觸發器工作流程如下:
name: Act on release created
on:
release:
types: [created]
jobs:
build:
name: Build
environment: dev_environment
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Test
run: |
echo $RELEASE_VERSION
echo ${{ env.RELEASE_VERSION }}
發布和標簽已正確添加到 GitHub 中,因此一切看起來都正常,除了應該在發布上觸發的工作流沒有執行。
我該如何解決這個問題?
關於在工作流中執行任務的 GitHub Actions 文檔說明如下:
當您使用存儲庫的 GITHUB_TOKEN 代表 GitHub Actions 應用程序執行任務時,由 GITHUB_TOKEN 觸發的事件不會創建新的工作流運行。 這可以防止您意外創建遞歸工作流運行。
這意味着您必須創建一個個人訪問令牌並將此令牌添加到您的存儲庫機密中。
要生成新的個人訪問令牌,請轉到您的個人開發人員設置並生成新令牌。 然后轉到您的存儲庫設置並添加一個包含個人訪問令牌的新密鑰,將其命名為PAT
。
在您的發布工作流模板中,替換:
token: ${{ github.token }}
和:
token: ${{ secrets.PAT }}
現在將觸發工作流的發布創建事件!
注意:這種方法似乎有點hacky,但目前是唯一已知的解決這個問題的方法,可以被認為是工作流集成的主要設計缺陷。
作為上面給出的答案的附錄,我發現workflow_run
事件觸發器適用於這個用例:
on:
workflow_run:
workflows: ["Main release"]
types: [completed]
您可以為各種發布標簽添加條件,如果需要除此之外的所有條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.