git 测试和发布有条件运行的工作流

b5buobof  于 2024-01-04  发布在  Git
关注(0)|答案(1)|浏览(116)

我想在每个推/拉请求上启动unittest工作流。然后我想仅在unittest成功并在新标签上运行publish工作流。
这是一些基本的git流管理,但似乎GitHub Actions并不希望开发人员这样做。
这就是我的:

# unittest.yml

name: Unittest
on: [push, pull_request]

jobs:
  unit-test:
    runs-on: ubuntu-latest
    steps:
    ...

个字符
这两个工作流已经过测试,并且正在工作。每当我推送一个新标签时,unittest就会启动,成功通过,但publish没有。
我看了这里和这里的文件。
有什么建议吗?

wj8zmpe1

wj8zmpe11#

关于您最初使用workflow_run触发publish的尝试,标准语法似乎无法将workflow_run触发器限制为tag-push事件。更好的解决方案是在同一工作流中使用条件。
问题是workflow_run事件仅支持branchesbranches-ignore筛选器,但不支持tagstags-ignore筛选器。仅使用branchesbranches-ignore筛选器将阻止工作流在tag事件上运行。
为了完整起见,这是您如何调整原始publish工作流,使其仅在unittest工作流成功运行后触发,但它将在tagbranch推送事件(以及pull_request)上运行:

name: Publish
on:
  workflow_run:
    workflows: [Unittest]
    types: [completed]

jobs:
  publish-image:
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    runs-on: ubuntu-latest
    steps:
    ...

字符串

相关问题