仅Gitlab:多变量
是否还有其他方法可以执行多重和变量表达式 比方说仅Gitlab:多变量,gitlab,gitlab-ci,Gitlab,Gitlab Ci,是否还有其他方法可以执行多重和变量表达式 比方说 .template1: 仅: 变量: -$flag1==“真” .模板2: 仅: 变量: -$flag2==“真” 工作1: 延伸: -.模板1 -.模板2 脚本:回声“某物” 这将如何评估 这是否只会导致:变量相互覆盖,因此template2是最终结果 或者这将导致一个组合变量,从而成为or语句 仅限: 变量: -$flag1==“真” -$flag2==“真” 有没有办法让它变成一种陈述保留模板系统,并且不使用规则:if,因为使用规则
.template1:
仅:
变量:
-$flag1==“真”
.模板2:
仅:
变量:
-$flag2==“真”
工作1:
延伸:
-.模板1
-.模板2
脚本:回声“某物”
这将如何评估
- 这是否只会导致:变量相互覆盖,因此template2是最终结果
- 或者这将导致一个组合变量,从而成为or语句
仅限:
变量:
-$flag1==“真”
-$flag2==“真”
有没有办法让它变成一种陈述保留模板系统
,并且不使用规则:if
,因为使用规则if有它自己的怪癖,在合并请求期间触发多个管道问题
每当两个作业“合并”时,无论是使用扩展
还是锚定
,GitLab都会用另一个部分覆盖一个部分。这些部分实际上并没有合并。在您的例子中,您是从两个作业扩展而来的,因此GitLab将用第二个作业完全覆盖第一个变量
部分
解决方案
实现所需结果的一种方法是在模板作业中定义变量。您将遇到的问题是两个变量
部分将相互覆盖。所以
您可以使用before_script
部分在第二个模板中定义变量。这种方法适用于2个模板的特定情况。如果你需要第三个模板,你可以使用script
和after\u script
,如果你需要更多的模板,你必须使用更高级的方法
.template1:
#我们可以在这里定义变量部分,没问题
变量:
标志1:“正确”
.模板2:
#您不能在这里定义第二个变量部分,因为它将覆盖第一个变量部分
#相反,直接在before脚本部分中定义环境变量
在脚本之前:
-export flag2=“true”
工作1:
延伸:
-.模板1
-.模板2
仅:
变量:
-$flag1==“真”
-$flag2==“真”
脚本:回声“某物”
只是跟进。你解决问题了吗?是的。。使用不同的属性使其工作是有意义的。非常感谢。