找不到通过脚本 运行 在 before script 属性中设置一个或多个作业变量的方法
Could not find a way to set the variables of a job or many jobs through script run in a before script attribute
我想将 .sh 文件中的值显示到 .gitlab-ci.yml 但我找不到解决方案。
PS:我不想在.yml文件中使用环境变量
我的 versions.sh 文件如下:
export PROJECT_VERSION = 2.1.25
我的 .gitlab-ci.yml 如下:
before_script:
- ./versions.sh
my_build_job:
- script:
- 'echo "PROJECT_VERSION = $(PROJECT_VERSION)"'
我知道您不想在 .yml
文件中使用环境变量,但是 version.sh 脚本定义了一个变量。
要显示它,语法为:
- 'echo "PROJECT_VERSION = ${PROJECT_VERSION}"'
那是 ${...}
,而不是 $(...)
,后者在子 shell 中执行命令。
但是,正如 gitlab-org/gitlab-foss
issue 27921 中所讨论的,那是行不通的。
您需要来源您的脚本,as suggested here:
my_build_job:
- script:
- source ./versions.sh
- 'echo "PROJECT_VERSION = $(PROJECT_VERSION)"'
我想将 .sh 文件中的值显示到 .gitlab-ci.yml 但我找不到解决方案。
PS:我不想在.yml文件中使用环境变量
我的 versions.sh 文件如下:
export PROJECT_VERSION = 2.1.25
我的 .gitlab-ci.yml 如下:
before_script:
- ./versions.sh
my_build_job:
- script:
- 'echo "PROJECT_VERSION = $(PROJECT_VERSION)"'
我知道您不想在 .yml
文件中使用环境变量,但是 version.sh 脚本定义了一个变量。
要显示它,语法为:
- 'echo "PROJECT_VERSION = ${PROJECT_VERSION}"'
那是 ${...}
,而不是 $(...)
,后者在子 shell 中执行命令。
但是,正如 gitlab-org/gitlab-foss
issue 27921 中所讨论的,那是行不通的。
您需要来源您的脚本,as suggested here:
my_build_job:
- script:
- source ./versions.sh
- 'echo "PROJECT_VERSION = $(PROJECT_VERSION)"'