gitlab-ci - 如何动态设置 gitlab-ci 变量?
问题描述
如何通过脚本设置 gitlab-ci 变量,而不仅仅是在 .gitlab-ci.yaml 的“变量”部分?这样我就可以在一项工作中设置变量并在不同的工作中使用
解决方案
GitLab 目前无法在阶段或作业之间传递环境变量。
但是有一个要求:https ://gitlab.com/gitlab-org/gitlab/-/issues/22638
当前的解决方法是使用工件- 基本上是传递文件。
我们有一个类似的用例——从管道中获取 Java 应用程序版本pom.xml
并将其传递给管道中的各种作业。
我们是如何做到的.gitlab-ci.yml
:
stages:
- prepare
- package
variables:
VARIABLES_FILE: ./variables.txt # "." is required for image that have sh not bash
get-version:
stage: build
script:
- APP_VERSION=...
- echo "export APP_VERSION=$APP_VERSION" > $VARIABLES_FILE
artifacts:
paths:
- $VARIABLES_FILE
package:
stage: package
script:
- source $VARIABLES_FILE
- echo "Use env var APP_VERSION here as you like ..."
推荐阅读
- blazor - 程序集不包含具有 [JSInvokableAttribute] 的公共可调用方法
- git - Git:短暂返回几个提交,然后返回
- angular - 在 authService 中以角度 SSR(通用)获取服务器端 cookie 以获取登录信息
- azure - azure app services 应用设置如何在 .net core 中工作?
- sql - 将 1 个随机记录从一个表转移到另一个表
- r - R Markdown - 使用 Latex PDF 的内联图像的垂直文本对齐
- spring-security - 在 Spring Web 中实现 Spring Security 时出错
- google-chrome-devtools - 在 google-chome-devtools 的元素选项卡中禁用鼠标悬停时突出显示元素
- javascript - 我可以在不制作后端 api 的情况下对用户进行身份验证吗?
- authentication - CakePHP 4 手动登录用户