Allow overwriting instance/group/project-level CI variables at job/YAML level
Summary
If a variable is predefined in CI / CD Settings > Secret variables, it cannot be overwritten properly in the "variables" block. And sometimes it behaves more than just strange.
Steps to reproduce
-
Enter any group --> Settings --> CI / CD
-
Define some variables in this page and save them:
NAMESPACE: ci NAMESPACE_PROD: prod NS: ci NS_PROD: prod -
In any project under this group, we try to overwrite some predefined variables and echo it :
some_job: variables: NAMESPACE: $NAMESPACE_PROD NS: $NAMESPACE_PROD NS_PROD: production script: - echo $NAMESPACE_PROD - echo $NAMESPACE - echo $NS - echo $NS_PROD
Actual behavior
NAMESPACE_PROD=prod
NAMESPACE="ci ci" # what the hell?
NS=ci
NS_PROD=prod
Expected behavior
NAMESPACE_PROD=prod
NAMESPACE=prod # should be overwritten by $NAMESPACE_PROD
NS=prod # should be overwritten by $NAMESPACE_PROD
NS_PROD=production # should be overwritten by "production"
Relevant logs and/or screenshots
$ echo $NAMESPACE_PROD
prod
$ echo $NAMESPACE
ci ci
$ echo $NS
ci
$ echo $NS_PROD
prod
Environment description
Gitlab Version: 10.6
gitlab-runner --version
Version: 10.5.0
Git revision: 80b03db9
Git branch: 10-5-stable
GO version: go1.8.5
Built: 2018-02-22T09:18:33+00:00
OS/Arch: linux/amd64
Gitlab Runner Host: CentOS Linux release 7.2.1511 (Core)
Used GitLab Runner version
Version: 10.5.0
Git revision: 80b03db9
Git branch: 10-5-stable
GO version: go1.8.5
Built: 2018-02-22T09:18:33+00:00
OS/Arch: linux/amd64
Edited by Chen Wen