运行 在 github 操作中创建拉取请求时的特定作业
Run particular jobs while creating pull request in githubactions
我已经使用 GitHub 操作实现了 ci/cd。在 ci/cd 中,我有三个作业,当我想发布一个标签时,我想构建这三个作业,当我向特定分支提出拉取请求时,只应执行两个作业以进行健康检查。例如,我有一个功能分支,我想将这个功能分支合并到 devel 分支。当我提出 PR 应该 运行 只有两个职位。我怎样才能做到这一点?下面是我的示例代码。
name: CI
on:
pull_request:
branches:
- master
- devel
push:
tags:
- '*'
jobs:
build:
name: build
runs-on: self-hosted
steps:
--------------
deploy:
name: deploy
runs-on: self-hosted
steps:
------------
automation-test:
name: test
runs-on: self-hosted
steps:
------------
在这里,当我提出 PR 时,我想 运行 构建和自动化测试作业。
这里有两个选择:
- 具有单独的工作流文件,运行 用于正确的分支。
- 在你的工作中使用条件
第一个选项可能就是您想要的。这里唯一的问题是,如果一项工作的输出被用于另一项工作,但听起来您并非如此。我建议您将 yaml 工作流程简单地分解为两个单独的工作流程:
name: CI
on:
pull_request:
branches:
- master
push:
tags:
- '*'
jobs:
build:
name: build
runs-on: self-hosted
steps:
--------------
deploy:
name: deploy
runs-on: self-hosted
steps:
------------
automation-test:
name: test
runs-on: self-hosted
steps:
------------
name: PR Builder
on:
pull_request:
branches:
- devel
jobs:
whatever_testing_jobs_you_like:
第二个选项可能如下所示:
name: CI
on:
pull_request:
branches:
- master
push:
tags:
- '*'
jobs:
build:
name: build
runs-on: self-hosted
steps:
--------------
deploy:
if: "github.ref != devel" # you might tweak the condition based on your needs
name: deploy
runs-on: self-hosted
steps:
------------
automation-test:
name: test
runs-on: self-hosted
steps:
------------
这些上下文值/条件是well documented
我已经使用 GitHub 操作实现了 ci/cd。在 ci/cd 中,我有三个作业,当我想发布一个标签时,我想构建这三个作业,当我向特定分支提出拉取请求时,只应执行两个作业以进行健康检查。例如,我有一个功能分支,我想将这个功能分支合并到 devel 分支。当我提出 PR 应该 运行 只有两个职位。我怎样才能做到这一点?下面是我的示例代码。
name: CI
on:
pull_request:
branches:
- master
- devel
push:
tags:
- '*'
jobs:
build:
name: build
runs-on: self-hosted
steps:
--------------
deploy:
name: deploy
runs-on: self-hosted
steps:
------------
automation-test:
name: test
runs-on: self-hosted
steps:
------------
在这里,当我提出 PR 时,我想 运行 构建和自动化测试作业。
这里有两个选择:
- 具有单独的工作流文件,运行 用于正确的分支。
- 在你的工作中使用条件
第一个选项可能就是您想要的。这里唯一的问题是,如果一项工作的输出被用于另一项工作,但听起来您并非如此。我建议您将 yaml 工作流程简单地分解为两个单独的工作流程:
name: CI
on:
pull_request:
branches:
- master
push:
tags:
- '*'
jobs:
build:
name: build
runs-on: self-hosted
steps:
--------------
deploy:
name: deploy
runs-on: self-hosted
steps:
------------
automation-test:
name: test
runs-on: self-hosted
steps:
------------
name: PR Builder
on:
pull_request:
branches:
- devel
jobs:
whatever_testing_jobs_you_like:
第二个选项可能如下所示:
name: CI
on:
pull_request:
branches:
- master
push:
tags:
- '*'
jobs:
build:
name: build
runs-on: self-hosted
steps:
--------------
deploy:
if: "github.ref != devel" # you might tweak the condition based on your needs
name: deploy
runs-on: self-hosted
steps:
------------
automation-test:
name: test
runs-on: self-hosted
steps:
------------
这些上下文值/条件是well documented