首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gitlab merge分支如何防止其.gitlab-ci.yml文件被合并?

gitlab merge分支如何防止其.gitlab-ci.yml文件被合并?
EN

Stack Overflow用户
提问于 2021-11-17 07:39:46
回答 1查看 99关注 0票数 0

由于需求的不同,开发分支和构建分支的.gitlab-ci.yml文件的内容是不同的,我希望在将开发分支合并到构建中时,.gitlab-ci.yml文件不会被合并。

是否可以将.gitlab-ci.yml文件配置为执行此操作?

如果是,如何配置?

EN

回答 1

Stack Overflow用户

发布于 2021-11-17 14:01:57

正如KamilCuk评论的那样,这并不是Gitlab CI的真正想法,而且没有办法对分支中的文件进行更改,然后不将这些更改合并到主分支中。

大多数情况下,功能分支不需要彼此不同的配置,所以实际上有一个文件来指定分支之间的配置是非常好的。(否则,每次开始一个新分支时,您都必须进行一些样板更改)。

通常你会得到这样的东西:

代码语言:javascript
复制
.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:

代码语言:javascript
复制
include: include/$CI_COMMIT_REF_NAME.yml

然后,您可以将以分支命名的.yml文件放在include/refs/heads ( Gitlab 14.5之前)或include/ ( Gitlab 14.5之后)中。

通过这种方式,更改仍将合并到您的主分支,但一旦在那里使用它们就不会被使用。然而,总的来说,我仍然建议接受这样一个事实,即文件是相同的,只是用onlyexceptworkflow关键字来区分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70000456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档