GitLab CI:在 before_script 构建作业中导出变量
GitLab CI: Export variable in before_script build job
我尝试根据 CI 脚本是否为标记的分支运行来实现条件版本控制。
但是版本 var 没有解决。相反,它被打印为一个字符串。
GitLabCI脚本的相关作业:
# build template
.build_base_template: &build_base_template
image: registry.gitlab.com/xxxxxxx/npm:latest
tags:
- docker
stage: LintBuildTest
script:
- export CUR_VERSION='$(cat ./version.txt)$BUILD_VERSION_SUFFIX'
- npm ci
- npm run build
artifacts:
expire_in: 1 week
paths:
- dist/
# default build job
build:
before_script:
- export BUILD_VERSION_SUFFIX='-$CI_COMMIT_REF_SLUG-SNAPSHOT-$CI_COMMIT_SHORT_SHA'
<<: *build_base_template
except:
refs:
- tags
only:
variables:
- $FEATURE_NAME == null
# specific build job for tagged versions
build_tag:
before_script:
- export BUILD_VERSION_SUFFIX=''
<<: *build_base_template
only:
refs:
- tags
一般来说,您不能将变量从子进程导出到父进程。
作为解决方法,您可以使用文本文件来 write/read 变量值。另外也许可以通过 yaml 模板传递变量。
在 before_script 中导出的变量在 script.
中可见
before:
before_script:
- export HELLOWELT="hi martin"
script:
- echo $HELLOWELT # prints "hi martin"
我尝试根据 CI 脚本是否为标记的分支运行来实现条件版本控制。 但是版本 var 没有解决。相反,它被打印为一个字符串。
GitLabCI脚本的相关作业:
# build template
.build_base_template: &build_base_template
image: registry.gitlab.com/xxxxxxx/npm:latest
tags:
- docker
stage: LintBuildTest
script:
- export CUR_VERSION='$(cat ./version.txt)$BUILD_VERSION_SUFFIX'
- npm ci
- npm run build
artifacts:
expire_in: 1 week
paths:
- dist/
# default build job
build:
before_script:
- export BUILD_VERSION_SUFFIX='-$CI_COMMIT_REF_SLUG-SNAPSHOT-$CI_COMMIT_SHORT_SHA'
<<: *build_base_template
except:
refs:
- tags
only:
variables:
- $FEATURE_NAME == null
# specific build job for tagged versions
build_tag:
before_script:
- export BUILD_VERSION_SUFFIX=''
<<: *build_base_template
only:
refs:
- tags
一般来说,您不能将变量从子进程导出到父进程。
作为解决方法,您可以使用文本文件来 write/read 变量值。另外也许可以通过 yaml 模板传递变量。
在 before_script 中导出的变量在 script.
中可见before:
before_script:
- export HELLOWELT="hi martin"
script:
- echo $HELLOWELT # prints "hi martin"