如何配置CircleCI使其仅在GitHub的master分支上运行?
CircleCI 仅 master 分支触发构建问题排查
你提供的config.yml语法符合CircleCI配置规范,出现全分支推送都触发任务的问题,通常由以下两种原因导致:
1. 主分支命名不匹配
目前GitHub新建仓库的默认主分支名称为main而非master,如果你的仓库已经将主分支更名,当前配置的only: master无法匹配到实际主分支,会触发默认的全分支匹配规则。
解决方案:将过滤规则中的分支名替换为你实际使用的主分支名即可:
workflows: s3-sync: jobs: - build: filters: branches: only: - main # 替换为你的实际主分支名称
2. 未配置标签过滤规则
CircleCI的分支过滤和标签过滤是两套独立规则:仅配置branches.only只会限制分支推送的触发范围,不会影响标签推送的触发逻辑。如果你给非master分支打了标签并推送,即使分支不符合规则,标签推送事件依然会触发构建任务。
解决方案:补充标签过滤规则,禁止所有标签推送触发当前任务:
workflows: s3-sync: jobs: - build: filters: branches: only: - master tags: ignore: /.*/ # 忽略所有标签推送事件
配置修改完成后推送到对应分支即可生效,同时可确认CircleCI项目后台没有配置全局触发规则覆盖配置文件的设置。
内容的提问来源于stack exchange,提问作者Max Hartshorn
相关产品推荐
相关产品推荐

