簡體   English   中英

GitHub 動作“未標記”觸發器

[英]GitHub Action `unlabeled` trigger

我有兩個工作流程來部署 gcp 資源。 一個工作流使用 label preview觸發以創建基礎設施,第二個工作流需要在 PR unlabeled時銷毀基礎設施。

on:
  pull_request:
    types: [opened, reopened, labeled]

jobs:
  create-infrastructure:
    if: ${{ contains( github.event.pull_request.labels.*.name, 'preview') }}

第二個工作流程我需要在關閉或未標記時觸發,並在第一個工作流程中應用特定的 label。

on:
  pull_request:
    types: [ closed, unlabeled ]

jobs:
  destroy_preview:
    if: ${{ contains( github.event.pull_request.labels.*.name, 'preview') }}

我不知道如何為特定的 label 定義unlabeled 如果有人有任何想法,那就太好了。

據我所知, 拉取請求 webhook 有效負載不包含已刪除的 label,但您可以獲取問題事件列表(也適用於拉取請求),按unlabeled的事件過濾,然后查看 label最后一個的名字。

run步驟中使用GitHub CLI ,可能看起來像這樣:

name: Preview removed workflow

on:
  pull_request:
    types:
      - unlabeled

jobs:
  destroy_preview:
    runs-on: ubuntu-20.04
    steps:
      - name: Check if "preview" was removed
        env:
          GITHUB_TOKEN: ${{ github.token }}
        run: |
          pr=${{ github.event.number }}
          label=$(gh api "repos/$GITHUB_REPOSITORY/issues/$pr/events" \
              --jq 'map(select(.event == "unlabeled"))[-1].label.name')

          if [[ $label == 'preview' ]]; then
              echo "The 'preview' label has been removed"
          fi

您將在其中將echo替換為您的基礎設施命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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