You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CircleCI中创建仅运行测试的夜间定时构建?

CircleCI夜间定时测试流水线配置方案

核心做法

把原有流水线里的测试步骤拆成独立任务,然后用CircleCI的定时触发器来调度这个任务,无需依赖代码提交触发。

具体操作步骤

1. 拆分原有config.yml中的测试任务

假设你原有的config.yml结构如下:

workflows:
  test-deploy:
    jobs:
      - build-app
      - run-tests:
          requires:
            - build-app

jobs:
  build-app:
    docker:
      - image: circleci/node:18
    steps:
      - checkout
      - run: npm install
      - run: npm run build
      # 其他构建相关步骤...

  run-tests:
    docker:
      - image: circleci/node:18
    steps:
      - checkout
      - run: npm install
      - run: npm run test -- --url=https://你的测试应用地址.com
      # 原有的测试步骤...

由于我们是直接测试线上URL,run-tests任务无需依赖构建产物,直接改成可独立运行即可。

2. 新增定时工作流

在config.yml中添加一个专属工作流,仅由定时触发器触发,只执行测试任务:

workflows:
  # 保留原有工作流不变
  test-deploy:
    jobs:
      - build-app
      - run-tests:
          requires:
            - build-app
  # 新增夜间定时测试工作流
  nightly-test:
    triggers:
      - schedule:
          cron: "0 0 * * *"  # 每天凌晨0点执行(UTC时间,按需调整时区)
          filters:
            branches:
              only:
                - test  # 指定使用测试环境分支的配置
    jobs:
      - run-tests

3. 调整测试任务的依赖(按需)

因为是直接测试线上应用,run-tests不需要等待构建完成,确保任务内的步骤不依赖构建产物即可——比如测试需要安装依赖,保留npm install这类步骤就足够。

4. 控制台配置定时触发器(可选)

如果不想修改配置文件,也可以直接登录CircleCI控制台操作:进入项目的Project Settings > Triggers > Add Trigger,选择Schedule类型,设置cron表达式、目标分支,再指定要执行的任务为run-tests即可。这种方式无需改动代码,更灵活。

注意事项

  • cron表达式使用UTC时间,需转换为你所在时区的时间,比如国内时区(UTC+8)要在凌晨2点执行,cron应写为0 18 * * *(UTC18点对应国内凌晨2点)。
  • 确保测试环境的Web应用在定时执行时段处于正常运行状态,避免测试失败。
  • 如果测试需要环境变量,要保证CircleCI项目已配置好相关变量,定时构建会自动继承这些配置。

内容的提问来源于stack exchange,提问作者Larry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:55:20