簡體   English   中英

GitHub 發布操作創建的工作流觸發器不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM