Xy718
#1
例如我在pipeline中定义了变量:
variables:
buildVersion: "UNKNWON"
来保证我在之后的job中能够根据该变量做出调整
但是如果我在某些使用了该变量的job之前需要修改该变量的话(比如根据当前的时间,Runner的tags,触发分支等等)
似乎是没有办法的,搜索了英文官方的相关文档和案例之后
目前最佳的方案也只有WebAPI
和本地文件
的形式来保存和修改该变量
请问除了这个两个方案还有其他能够在pipeline中直接修改的方式吗?
PS:不一定要使用variables
其他能够跨job使用的变量手段也可以
1 个赞
Alex
#2
可以考虑在before_script这种job中写一个shell脚本,用于实现变量赋值的判断逻辑:
before_script:
- export DOCKER_UPSTREAM=$(./detect-version.sh)
my_job:
- image: our_image:$DOCKER_UPSTREAM
- script:
- ...
Alex
#4
JOB中可以给全局变量重新赋值,我理解你的意思不是简单的重新赋值,而是涉及到逻辑判断之后才输出一个值。
Xy718
#5
是的,请问如何赋值?像简单的shell变量一样吗,还是有什么spel语法,我没有查到,请问可以给个demo片段吗