我正在尝试实现 GitLab CI 管道来构建和部署 Angular 应用程序。在我们的项目中,我们有两个通用分支:master
(仅用于生产)和develop
。对于开发,我们从 develop
分支创建 feature/some-feature
分支。开发完成后,我们创建从 feature/some-feature
到 develop
的 merge 请求。当 merge 请求获得批准并 merge 到 develop
分支时,我想运行一个管道来构建应用程序并将构建部署到某个环境中。
我在 .gitlab-ci.yml 中使用以下设置:
image: node:7.5-configured
stages:
- build
- deploy
build_job:
stage: build
only:
- develop
script:
- /bin/bash <some script here>
...
问题是每次我 push 任何 feature/some-feature
分支时,Pipeline 都会执行。我的设置有什么问题?当直接推送到 develop
分支时,如何强制管道仅执行?
解决方案
这是我的错误 - 我在 develop
分支和 feature/some-feature
分支中有两个不同的 .gitlab-ci.yml 文件。
最佳答案
这是我的错误 - 我在 develop
分支和 feature/some-feature
分支中有两个不同的 .gitlab-ci.yml 文件,这就是执行管道的原因对于所有分支机构。
关于仅在特定分支上的 GitLab CI 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46948990/