[英]Github Actions: using workflow_run based on new tags
我有兩個工作流程:CI(用於持續集成)和 CD(用於持續交付)。 兩者都單獨工作正常。 我的目標是僅在以下情況下運行 CD 工作流程:
為了實現我的目標,我使用了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
,所以恐怕這就是您當前設置不起作用的原因。
不過你有一些選擇:
.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
needs
選項將其作為依賴於 CI 作業的單獨作業盡管需要一些工作,但將其轉換為動作可以更好地封裝 IMO。
您需要將 "" 放在cd.yml
中觸發工作流的名稱周圍:
name: CD
on:
workflow_run:
workflows: ["CI"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.