我在Gitlab CI
中有一个虚拟的构建脚本
pwd
ci_app_path=$(pwd)
echo "INFO: current directory: $ci_app_path"
当系统开始构建过程时,我会得到以下输出:
pwd
/home/kai/gitlab-runners/gitlab-ci-runner/tmp/builds/project-1
ci_app_path=$(pwd)
echo "INFO: current directory: $ci_app_path"
INFO: current directory:
所以没有设置变量(或者只为该行设置:据我所知,每一行都是单独执行的)
我听说了推送/弹出机制,以达到我想要的功能,但没有找到任何细节,如何实现它。
更新:
正如我所想的,每一行都是单独执行的。所以变量作用域只有一行,它是在这里定义的:
脚本:
pwd
ci_app_path=$(pwd) && echo "INFO: current directory: $ci_app_path"
输出:
pwd
/home/devuser/gitlab-runners/gitlab-ci-runner/tmp/builds/project-1
ci_app_path=$(pwd) && echo "INFO: current directory: $ci_app_path"
INFO: current directory: /home/kai/gitlab-runners/gitlab-ci-runner/tmp/builds/project-1
我不认为将整个脚本编写为一行代码是一个好主意/做法。
如何在执行构建脚本时设置变量?
附注:
实际上,我想知道为什么整个构建脚本必须不包含空行?,否则它将返回:
No such file or directory
在这个地方构建失败
发布于 2016-12-02 19:58:22
Gitlab CI只播放shell命令,所以请执行*sh中的操作:
export ci_app_path=$(pwd)
echo "INFO: current directory: $ci_app_path"
发布于 2013-11-28 22:23:49
在Gitlab-CI修复它之前,您可以创建一个Makefile并导出其中的变量,然后在Gitlab-CI中传递变量,例如
PWD=$PWD make
Makefile以a开头: export GOPATH=$(PWD)
https://stackoverflow.com/questions/19359905
复制相似问题