如何覆盖 .gitlab-ci.yml 中的 gitlab 组或项目 CD/CI 变量?

foo*_*bar 7 gitlab gitlab-ci gitlab-ci.yml

我在 Gitlab 中有一个项目,在项目组文件夹的 Gitlab UI 中定义了变量。在我的 git 存储库之一的新分支上,我需要覆盖其中一些变量。

variables:
  GLOBALLY_DEFINED_VARIABLE: "branch_specific_value"
Run Code Online (Sandbox Code Playgroud)

但在具体构建中,该值仍然是全局变量的原始值。如何获取文件里面的值.gitlab_ci.yml来赢得项目值?

我知道,文档(https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence)说 yml 中的变量具有较低的优先级,但这没有任何意义(yml 是在项目内部,因此它通常必须具有比项目更高的优先级)。有什么方法可以让我的 yml 文件获胜吗?注意:我不想排除所有变量!其中大部分仍然需要,我只需要覆盖一些

我的用例是这样的:新分支准备代码库以便能够在新的网络服务器上运行。所以这个分支显然需要有存储路径和新服务器类似的变量。但是当然,所有存储库的主要分支仍应构建到当前(旧)实时服务器,直到完成并测试主新服务器分支上的迁移。因此,在这个准备分支上,我必须能够覆盖旧服务器设置。旧设置存储在项目组变量中,因为它们对于许多存储库都是相同的,但现在需要在单个存储库的单个分支中进行更改。

Gle*_*mas 7

script您可以从您的或中设置变量值before_script

variables:
  LOCALLY_DEFINED_VARIABLE: "branch_specific_value"
before_script:
  - GLOBALLY_DEFINED_VARIABLE=$LOCALLY_DEFINED_VARIABLE
Run Code Online (Sandbox Code Playgroud)