拉取请求具有特定标签时运行Github Actions

时间:2020-06-11 13:12:54

标签: github yaml github-actions

阅读Events that trigger workflows的文档后,我想知道是否可以使用具有给定标签名称的工作流来运行,例如RFR或WIP。

我知道在标记了拉取请求后,我们可以运行工作流程,但是对于特定的标签名称,仅此而已:

on:
  pull_request:
    types: [labeled]

有人做过吗?

1 个答案:

答案 0 :(得分:6)

您可以使用

之类的条件表达式来实现在为请求请求加标签时运行工作流程
if: ${{ github.event.label.name == 'label_name' }}

因此,如果您具有如下所示的GitHub操作配置

name: CI

on:
  pull_request:
    types: [ labeled ]

jobs:
  build:
    if: ${{ github.event.label.name == 'bug' }}
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Run a one-line script
      run: echo Hello, world!

只要标有PR,它就会触发工作流程,并且仅当标签为bug 时才运行作业,并且如果标签为其他任何标签,则会跳过 。您还可以使用github.event.action == 'labeled'作为额外的检查项,但是如果types: [ labeled ]仅具有pull_request,则不需要这样做,如上面的配置所示。

注意:仅供参考,在标记PR的情况下,github事件具有以下有关该标记的信息(为简便起见,删除了无关的数据)

"event": {
    "action": "labeled",
    "label": {
      "color": "d73a4a",
      "default": true,
      "description": "Something isn't working",
      "id": 1519136641,
      "name": "bug",
      "node_id": "abcd",
      "url": "https://api.github.com/repos/owner/repo/labels/bug"
    }
}
关于条件表达式的

GitHub行为文档here