我想在 .gitlab-ci.yml 中的作业的only
子句中使用GitLab CI predefined variables (Environment variables)。
我有一个在http://gitlab.myorg.com/jamiet/test-ci-variables托管的项目(GitLab版本是“9.5.2-ee”)。以下是 .gitlab-ci.yml :
的内容stages:
- mystage
.templ: &templ
stage: mystage
image: docker-dev/centos-base/7.3.1611/
tags:
- kubernetes
script:
- echo "hello world"
use absolute values:
<<: *templ
only:
- master@jamiet/test-ci-variables
use $CI_PROJECT_NAME:
<<: *templ
only:
- master@jamiet/$CI_PROJECT_NAME
use ${CI_PROJECT_NAME}:
<<: *templ
only:
- master@jamiet/${CI_PROJECT_NAME}
当CI管道运行时,它只运行作业use absolute values
:
这告诉我,要么它没有识别$CI_PROJECT_NAME
,要么我的语法错误。有人知道吗?
答案 0 :(得分:0)
对此也感到困惑。 解决方案是: 变量检查不起作用,以防以下情况:
only:
variables:
- $VARIABLE == master@jamiet/{}
- master@jamiet/${CI_PROJECT_NAME}
- master@jamiet/$CI_PROJECT_NAME
但是可以使用一个简单的变量:
only:
variables:
- $VARIABLE == $CI_PROJECT_NAME
- ${CI_PROJECT_NAME}
- $CI_PROJECT_NAME
尝试在模板中重新定义变量,并像这样使用它。