在 GitHub 个操作中链式测试和发布工作流
Chain testing and releasing workflows in GitHub Actions
我有 2 个条件,在这些条件下我想 运行 我在 go
项目的 GH 操作中的工作流程
- 运行 对每个 PR 进行单元测试(我已经通过以下
workflow.yaml
处理了这个问题
name: unit-tests
on: [ pull_request ]
jobs:
unit-tests:
runs-on: Linux
steps:
- name: checkout project
uses: actions/checkout@v2
- name: dynamically retrieve go version
uses: arnested/go-version-action@v1
id: go-version
- name: setup go ${{ steps.go-version.outputs.minimal }}
uses: actions/setup-go@v2
with:
go-version: ${{ steps.go-version.outputs.minimal }}
- name: run unit tests
run: go test -race -cover -v ./... -run Unit
我的第二个要求如下:
- 运行 单元测试,如果测试成功并且目标分支是
master
,则继续创建标签 + 发布
我的问题如下:由于 on
子句在每个工作流中都是唯一的,有没有一种方法可以利用可以集成的上述工作流(无需编写或多或少的克隆)在第二个用例中?
首先,
这意味着您可以创建一个工作流 on master
分支,它将“调用”(重用)您的第二个(现有)工作流,它本身带有 on:
指令
调用看起来像:
jobs:
call-workflow-passing-data:
uses: octo-org/example-repo/.github/workflows/reusable-workflow.yml@main
with:
username: mona
secrets:
envPAT: ${{ secrets.envPAT }}
我有 2 个条件,在这些条件下我想 运行 我在 go
项目的 GH 操作中的工作流程
- 运行 对每个 PR 进行单元测试(我已经通过以下
workflow.yaml
处理了这个问题
name: unit-tests
on: [ pull_request ]
jobs:
unit-tests:
runs-on: Linux
steps:
- name: checkout project
uses: actions/checkout@v2
- name: dynamically retrieve go version
uses: arnested/go-version-action@v1
id: go-version
- name: setup go ${{ steps.go-version.outputs.minimal }}
uses: actions/setup-go@v2
with:
go-version: ${{ steps.go-version.outputs.minimal }}
- name: run unit tests
run: go test -race -cover -v ./... -run Unit
我的第二个要求如下:
- 运行 单元测试,如果测试成功并且目标分支是
master
,则继续创建标签 + 发布
我的问题如下:由于 on
子句在每个工作流中都是唯一的,有没有一种方法可以利用可以集成的上述工作流(无需编写或多或少的克隆)在第二个用例中?
首先,
这意味着您可以创建一个工作流 on master
分支,它将“调用”(重用)您的第二个(现有)工作流,它本身带有 on:
指令
调用看起来像:
jobs:
call-workflow-passing-data:
uses: octo-org/example-repo/.github/workflows/reusable-workflow.yml@main
with:
username: mona
secrets:
envPAT: ${{ secrets.envPAT }}