Gitlab 在不同 job 之间传递变量
在 gitlab 中, 不同 job 之间的变量是不能直接传递的。 但如果有需求, 则必须要借助 artifacts:reports:dotenv
实现。
- 在 job1 中保存在
script
下执行命令, 保存到xxx.env
文件中。
- 将变量已
k=v
的形式保存 - 每行一个
- 不支持换行符
- 使用
artifacts:reports:dotenv
传递文件
在后续 job 中, 会自动加载 job1 传递 xxx.env
中的变量键值对。
另外如果在后续 job 中定义了同名变量,则这些变量值将被覆盖, 以 xxx.env
中的值优先。
CI/CD 变量覆盖优先级参考: https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence
|
|
需要注意的是 默认情况下 同一个 stage
下的不同 job
是并行的。 因此需要在相同 stage 下的多个 job 之间传递变量就需要使用 dependencies
或 needs
关键字控制执行顺序。
|
|
- 原文链接:https://typonotes.com/posts/2022/03/04/pass-an-environment-variable-to-another-job/
- 本文为原创文章,转载注明出处。
- 欢迎 扫码关注公众号
Go与云原生
或 订阅网站 https://typonotes.com/ 。 - 第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。