我正在尝试创建一个包含生产和开发部署的管道。在这两种环境中,应用程序都应该使用 docker 构建。但仅当相应目录中发生更改时。
例如:
起初我没有关键字needs: 。即使未执行构建作业,管道也始终执行deploy_backend和deploy_frontend。
现在我已经添加了needs: 关键字,但是 Gitlab 说yaml invalid当一个目录中只有一个更改时。当两个目录都发生更改时,管道工作正常。例如,当 2 个目录之外的 README.md 发生更改时,也会yaml invalid这样说。
有谁知道如何创建一个管道,该管道仅在指定目录发生更改时运行,并且仅在构建作业运行时运行相应的部署作业?
gitlab-ci.yml:
stages:
- build
- deploy
build_frontend:
stage: build
only:
refs:
- master
- development
changes:
- frontend/*
script:
- cd frontend
- docker build -t frontend .
build_backend:
stage: build
only:
refs:
- master
- development
changes:
- backend/*
script:
- cd backend
- docker build -t backend .
deploy_frontend_dev:
stage: deploy
only:
refs: …Run Code Online (Sandbox Code Playgroud)