由不同事件触发的Github操作作业



我在Github操作中的发布管道有两项工作(1(测试(2(发布

这就是我的目标:

发布管道的测试作业将通过创建拉请求来触发,当拉请求合并时,管道的发布作业将被梯级

name: OC-API CD
on: 
pull_request:
types: [merged]
branches: 
- master
jobs:
testing:
runs-on: ubuntu-latest
steps:
...
release:
runs-on: ubuntu-latest
steps:
...

似乎所有作业都必须由相同的事件通过on、触发

(1( 是否有任何方法可以通过不同的事件触发不同的作业?

(2( 我如何添加测试和发布之间的依赖关系,AKA,发布作业取决于是否成功运行测试作业

您可以通过添加if来控制每个作业,在您的情况下,它将是这样的:

jobs:
testing:
if: ${{ github.event.action }} == 'opened'
runs-on: ubuntu-latest
steps:
...

请记住,您必须将opened添加到on: pull_request: types:阵列中:(

对于第二部分,您可以使用needs添加依赖项,如下所示:


jobs:
testing:
runs-on: ubuntu-latest
steps:
...
release:
needs: testing
runs-on: ubuntu-latest
steps:
...

最新更新