由于需求的不同,开发分支和构建分支的.gitlab-ci.yml文件的内容是不同的,我希望在将开发分支合并到构建中时,.gitlab-ci.yml文件不会被合并。
是否可以将.gitlab-ci.yml文件配置为执行此操作?
如果是,如何配置?
发布于 2021-11-17 14:01:57
正如KamilCuk评论的那样,这并不是Gitlab CI的真正想法,而且没有办法对分支中的文件进行更改,然后不将这些更改合并到主分支中。
大多数情况下,功能分支不需要彼此不同的配置,所以实际上有一个文件来指定分支之间的配置是非常好的。(否则,每次开始一个新分支时,您都必须进行一些样板更改)。
通常你会得到这样的东西:
.build:
stage: build
script:
- make
build_main:
extends: .build
before_script:
- ./ci/export_version_number.sh
only:
- $CI_DEFAULT_BRANCH
build_feature:
extends: .build
variables:
ON_FEATURE_BRANCH: true
only:
- /^feature\/.*$/使用此设置,您可以使用extends关键字继承常用设置。(作业名称前面的.使其成为hidden)。这比在分支中更改CI文件要强大得多,因为您可以使用它来自定义作业,而无需首先更改分支。
解决方法
如果您真的想这样做,我想您可以这样做:..gitlab ci.yml:
include: include/$CI_COMMIT_REF_NAME.yml然后,您可以将以分支命名的.yml文件放在include/refs/heads ( Gitlab 14.5之前)或include/ ( Gitlab 14.5之后)中。
通过这种方式,更改仍将合并到您的主分支,但一旦在那里使用它们就不会被使用。然而,总的来说,我仍然建议接受这样一个事实,即文件是相同的,只是用only,except和workflow关键字来区分。
https://stackoverflow.com/questions/70000456
复制相似问题