gitlab - GitLab CI 预定义的环境变量仅在子句中不被识别?
问题描述
我想在.gitlab-ci.yml的作业子句中使用GitLab CI 预定义变量(环境变量)。 only
我有一个项目托管在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 管道运行时,它只运行 job use absolute values
:
这向我表明它要么无法识别,$CI_PROJECT_NAME
要么我的语法错误。有人知道吗?
解决方案
对此也感到不解。解决方案是:如果出现以下情况,变量检查将不起作用:
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
尝试在模板中重新定义变量并像这样使用它。
推荐阅读
- c - 初学者问题:for循环没有按预期工作
- arduino - esp8266 软AP显示错误名称
- angular - 如何在 IDE (WebStorm) 中将 npm 包引用到它的源代码?
- python - 如何使用某些行数据在熊猫中创建小计记录
- pandas - 根据列名和值将数据框中的值替换为另一个数据框中的值
- scikit-learn - 我试图拟合和评分逻辑回归模型但出现错误,任何人都可以帮我解决这个错误
- css - `.prose ol[type="A" s]`最后一个`s`在CSS中是什么意思?
- python - 使用启动文件组合两个节点,结果 cv2.imwrite() 不起作用
- c# - TIA Portal V16 CAx-Operations - Siemens TIA Openness User Group not found
- sql - 如何知道 Mapbasic 中隐藏的 SQL 运算符或函数?