首页 > 解决方案 > Gitlab 在合并请求期间排除某些文件的覆盖

问题描述

我们的功能分支基于“Dev”分支。开发分支每天根据我们.gitlab-ci.yml在开发分支中定义的指令部署到开发环境。

当一个特性分支被创建并提交时,它们被部署为特性分支.gitlab-ci.yml与开发分支相同。如果我们禁用功能分支上的部署步骤并且忘记在返回到 dev 分支的合并请求期间取消注释,则 dev 分支将由.gitlab-ci.yml功能分支覆盖文件。

.gitlab-ci.yml尽管来自任何功能分支的合并请求,是否有办法让 Dev保持不变?我发现.gitattributes可能会有所帮助,但找不到如何定义和使用它的起点。

标签: gitgitlabgitlab-ci

解决方案


这是一个极其简化的示例,您可以如何在.gitlab-ci.ymlwith规则中定义两个单独的部署步骤。它基于您为功能分支添加前缀的假设,例如使用feature.

stages:
  - deploy

deploy:feature:
  stage: deploy
  script:
    - echo "deploy feature branch"
  rules:
    - if: '$CI_COMMIT_BRANCH =~ /^feature/'

deploy:dev:
  stage: deploy
  script:
    - echo "deploy to development"
  rules:
    - if: '$CI_COMMIT_BRANCH == "dev"'

推荐阅读