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/ 。 - 第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。


