我有两个工作流: CI (用于连续集成)和CD (用于连续传递)。两人各自工作都很好。我的目标是只在以下情况下运行CD工作流:
为了实现我的目标,我使用了workflow_run事件。以下是我的工作流文件的片段:
ci.yml:
name: CI
on:
push:
tags: v[1-9]+.[0-9]+.[0-9]+
pull_request:
branches: [develop, hotfix*]cd.yml
name: CD
on:
workflow_run:
workflows: [CI]
branches: [master]
types:
- completed当前的行为是:在主分支中创建标记时,只运行CI工作流。我尝试过将tags: v[1-9]+.[0-9]+.[0-9]+放在workflow_run中,但是行为是一样的。
我的问题是:我怎样才能实现我的目标?有可能吗?
发布于 2022-02-13 15:18:29
根据文档,您只能对workflow_run使用branches选项,而不能使用tags,因此恐怕这就是当前设置无法工作的原因。
不过,您有一些选择:
.github/actiond/cd/action.yml。name: CD
description: Run CD
runs:
using: composite
steps:
- run: echo "Success!"
shell: bashCI:
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/cdneeds选项将其作为独立的依赖于CI作业的作业将其转化为行动有助于更好地封装海事组织,尽管需要做一些工作。
发布于 2020-12-18 10:54:03
您需要在cd.yml中围绕触发工作流的名称加上"“。
name: CD
on:
workflow_run:
workflows: ["CI"] https://stackoverflow.com/questions/65324440
复制相似问题