如何配置CircleCI流水线,停止自动触发改为手动运行?
解决CircleCI流水线仅手动触发的问题
要让你的Cypress测试流水线仅通过CircleCI仪表盘手动触发,需要修改CircleCI配置文件,通过workflows控制触发规则,具体步骤如下:
修改配置文件
- 将配置版本升级到
2.1(支持更灵活的触发控制) - 定义workflow,为测试job添加手动触发条件,移除默认的自动触发行为
修改后的完整配置如下:
version: 2.1 jobs: build: docker: - image: cypress/base:14.16.0 environment: TERM: xterm working_directory: ~/app parallelism: 4 resource_class: large steps: - checkout - restore_cache: keys: - v1-deps-{{ .Branch }}-{{ checksum "package.json" }} - v1-deps-{{ .Branch }} - v1-deps - run: name: Install Dependencies command: npm ci - save_cache: key: v1-deps-{{ .Branch }}-{{ checksum "package.json" }} paths: - ~/.npm - ~/.cache - run: $(npm bin)/cypress run --parallel --record --key 4 workflows: manual-test-workflow: jobs: - build: # 仅允许手动触发该job when: manual
关键说明
when: manual:该配置会让buildjob只能通过CircleCI仪表盘手动启动,推送分支或创建PR时不会自动触发- 如果需要先经过手动审批再运行测试,可以保留原有的
request-testing审批job,调整workflow如下:
workflows: manual-test-workflow: jobs: - request-testing: type: approval - build: requires: - request-testing when: manual
这种设置需要先在仪表盘审批request-testing,再手动触发build job,进一步收紧测试运行的触发权限。
额外验证
如果修改配置后仍出现自动触发情况,可检查CircleCI项目设置:
- 进入项目「Settings」→「Advanced」
- 关闭「Auto-run builds」选项,彻底禁用自动触发的流水线
内容的提问来源于stack exchange,提问作者akshith
相关产品推荐
相关产品推荐

