如何配置CI:仅在后端代码推送时运行对应YAML文件
解决方案
核心思路是给每个CI任务配置路径过滤规则,让任务仅在对应目录的代码发生变更时触发。以下是主流CI工具的具体配置方法:
GitHub Actions(分文件配置场景)
针对每个环境的YAML配置文件,在触发条件中添加paths规则:
backend.yml(后端CI配置)
name: Backend CI on: push: paths: - 'backend/**' # 仅监听backend目录下所有文件变更 - '.github/workflows/backend.yml' # 修改CI配置文件时也触发 pull_request: paths: - 'backend/**' jobs: build: # 你的后端构建、测试等任务逻辑
frontend.yml(前端CI配置)
name: Frontend CI on: push: paths: - 'frontend/**' - '.github/workflows/frontend.yml' pull_request: paths: - 'frontend/**' jobs: build: # 你的前端构建、测试等任务逻辑
admin-frontend.yml(管理端CI配置)
name: Admin Frontend CI on: push: paths: - 'admin-frontend/**' - '.github/workflows/admin-frontend.yml' pull_request: paths: - 'admin-frontend/**' jobs: build: # 你的管理端构建、测试等任务逻辑
GitLab CI(单文件配置场景)
在主配置文件.gitlab-ci.yml中,给每个任务添加only.changes规则:
backend-job: stage: build script: - # 后端构建、测试命令 only: changes: - backend/** - .gitlab-ci.yml frontend-job: stage: build script: - # 前端构建、测试命令 only: changes: - frontend/** - .gitlab-ci.yml admin-frontend-job: stage: build script: - # 管理端构建、测试命令 only: changes: - admin-frontend/** - .gitlab-ci.yml
关键说明
- 路径规则支持通配符
**,表示匹配目录下所有文件及子目录 - 建议把CI配置文件本身加入监听列表,避免修改CI逻辑后无法触发任务
- 不同CI工具的路径过滤语法略有差异,但核心逻辑一致:仅当指定路径下的文件有提交变更时,才执行对应任务
内容的提问来源于stack exchange,提问作者Saran raj
相关产品推荐
相关产品推荐

