禁用 Github Action 工作流程,仅在需要时运行

sha*_*rks 13 continuous-integration github github-actions building-github-actions

我有一些非常昂贵的基准/测试,我只想在一些 PR 上运行,而不是全部。有没有办法通过 github actions 来做到这一点?

Mei*_*wjn 21

是的,有几种方法。大多数工作流程触发器都可以通过“活动类型”进一步指定。对于 Pull 请求,它们是:

  • 分配的
  • 未分配的
  • 贴上标签
  • 未标记的
  • 打开
  • 已编辑
  • 关闭
  • 重新开放
  • 同步
  • 准备审查
  • 锁定
  • 解锁
  • 已请求审核
  • 评论请求已删除

(文档作为来源)

现在,您可以仅针对匹配特定模式的PR 运行工作流程:

on:
  pull_request:
    branches:
      - 'benchmark/**'
Run Code Online (Sandbox Code Playgroud)

您也可以使用标签来做到这一点:

on:
  pull_request: labeled
...
jobs:
  check-label:
    if: ${{ github.event.label.name == 'benchmark' }}
...
Run Code Online (Sandbox Code Playgroud)

当然,您也可以始终仅使用手动触发器

on: workflow_dispatch
Run Code Online (Sandbox Code Playgroud)