GitLab CI预定义的环境变量仅在子句中无法识别?

时间:2018-06-05 08:51:23

标签: gitlab gitlab-ci

我想在 .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

enter image description here

这告诉我,要么它没有识别$CI_PROJECT_NAME,要么我的语法错误。有人知道吗?

1 个答案:

答案 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 

尝试在模板中重新定义变量,并像这样使用它。