如何为单体仓库中单个应用配置GitLab定时构建/部署任务
实现单个应用的定时流水线触发
可以通过自定义变量+CI规则调整实现仅触发指定应用的定时流水线,具体步骤如下:
1. 调整目标应用的CI规则
找到需要定时运行的应用对应的.gitlab-ci.yml文件,修改其.change-only规则,添加针对定时任务的例外条件:
.change-only: rules: - if: $CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE != "schedule" # 新增规则:仅当定时任务携带指定应用变量时触发 - if: $CI_PIPELINE_SOURCE == "schedule" && $RUN_TARGET_APP == "your-target-app"
将your-target-app替换为该应用的标识名称(比如应用目录名或自定义代号),RUN_TARGET_APP是自定义的变量名,可按需修改。
2. 创建定向定时流水线
在GitLab项目的「CI/CD → 定时流水线」页面新建定时任务:
- 分支选择
master - 在「变量」区域添加键值对:
RUN_TARGET_APP=your-target-app(与步骤1中的变量名和应用标识保持一致) - 设置定时执行时间(例如每天早8点)
3. 验证其他应用的隔离性
其他应用的.gitlab-ci.yml保持原有的.change-only规则不变——由于原规则限定了$CI_PIPELINE_SOURCE != "schedule",当定时流水线触发时,这些应用的所有作业都会被自动跳过,只有目标应用的作业会满足规则条件并执行。
内容的提问来源于stack exchange,提问作者Marc Fearby
相关产品推荐
相关产品推荐

