簡體   English   中英

Github 操作:使用基於新標簽的 workflow_run

[英]Github Actions: using workflow_run based on new tags

我有兩個工作流程:CI(用於持續集成)和 CD(用於持續交付)。 兩者都單獨工作正常。 我的目標是僅在以下情況下運行 CD 工作流程:

  • 在 master 分支上創建一個新標簽,如 v1.1.1
  • CI 工作流完成

為了實現我的目標,我使用了workflow_run事件。 這些是我的工作流程文件的片段:

ci.yml:

name: CI

on:
  push:
    tags: v[1-9]+.[0-9]+.[0-9]+
    
  pull_request:
    branches: [develop, hotfix*]

光盤.yml

name: CD

on:
  workflow_run:
    workflows: [CI] 
    branches: [master]
    types:     
      - completed

當前行為是:當在 master 分支中創建標簽時,只有 CI 工作流運行。 我試過將tags: v[1-9]+.[0-9]+.[0-9]+放在workflow_run中,但行為是相同的。

我的問題是:我怎樣才能實現我的目標? 是否可以?

根據文檔,您只能使用branches選項而不是 workflow_run 的tags ,所以恐怕這就是您當前設置不起作用的原因。

不過你有一些選擇:

  1. 您可以將 CD 工作流程轉化為行動,並將其作為 CI 的一部分運行,條件為: .github/actiond/cd/action.yml
name: CD
description: Run CD
runs:
  using: composite
  steps:
    - run: echo "Success!"
      shell: bash

CI:

name: CI

on:
  push:
    tags: v[1-9]+.[0-9]+.[0-9]+
  pull_request:
    branches: [develop, hotfix*]

jobs:
  sucess:
    name: Log success
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: echo "Success!"
      - name: Run CD
        if: github.event_name == 'push' && contains(github.event.ref, '/tags/')
        uses: ./.github/actions/cd
  1. 使用needs選項將其作為依賴於 CI 作業的單獨作業

盡管需要一些工作,但將其轉換為動作可以更好地封裝 IMO。

您需要將 "" 放在cd.yml中觸發工作流的名稱周圍:

name: CD

on:
  workflow_run:
    workflows: ["CI"] 

暫無
暫無

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

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