如何限制手动触发的GitHub Action仅可在指定分支运行?
限制GitHub Action手动触发仅可运行在main分支的实现方案
可以在保留手动触发能力的前提下实现该需求,常用有两种实现方式:
方法1:在触发规则中直接限制分支
这是最简便的实现方案,配置完成后手动触发的分支选择框将仅展示main分支,从入口侧直接避免选择其他分支的可能。
配置示例如下:
--- name: DeployToProduction on: workflow_dispatch: # 仅允许main分支触发当前工作流 branches: [main] jobs: ...
方法2:在Job层增加分支判断
如果你需要更灵活的控制(比如同一个工作流中部分Job允许其他分支运行,生产部署Job仅允许main分支运行),可以给指定Job添加分支校验规则。就算用户选错了分支,不符合规则的Job也会直接跳过不会执行。
配置示例如下:
--- name: DeployToProduction on: workflow_dispatch: jobs: deploy-to-prod: # 仅当触发分支为main时才执行该Job if: github.ref == 'refs/heads/main' runs-on: ubuntu-latest steps: ...
如果是生产环境部署场景,建议两种方案搭配使用,再加一层GitHub仓库的环境保护规则限制,进一步降低误操作风险。
内容的提问来源于stack exchange,提问作者davidpricedev
相关产品推荐
相关产品推荐

