使用标签触发Github Actions:如何仅运行本次新增标签对应工作流
解决方案
直接使用pull_request labeled事件的内置新增标签字段调整判断规则即可,无需匹配PR全量历史标签。
实现原理
GitHub触发pull_request类型的labeled事件时,会在事件 payload 中通过github.event.label.name字段返回本次操作新增的单个标签,该字段仅包含当前刚添加的标签,不会关联PR上已有的历史标签。
修改后配置示例
将原配置中基于全量标签的contains判断改为直接匹配新增标签字段即可:
on: pull_request: types: - labeled jobs: dev: if: ${{ github.event.label.name == 'dev' }} # dev任务其余配置保持不变 test: if: ${{ github.event.label.name == 'test' }} # test任务其余配置保持不变
补充说明
- 单次操作仅添加一个标签时,只会触发对应标签匹配的单个任务,不会运行其他历史标签对应的任务
- 单次操作同时添加多个标签时,GitHub会为每个新增标签单独触发一次
labeled事件,每次事件仅匹配当前新增标签对应的任务,不会重复执行其他任务
内容的提问来源于stack exchange,提问作者Ben Dubuisson
相关产品推荐
相关产品推荐

