首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Gitlab CI中设置构建脚本中的(环境)变量?

如何在Gitlab CI中设置构建脚本中的(环境)变量?
EN

Stack Overflow用户
提问于 2013-10-14 20:06:28
回答 2查看 19.8K关注 0票数 7

我在Gitlab CI中有一个虚拟的构建脚本

代码语言:javascript
运行
复制
pwd
ci_app_path=$(pwd)
echo "INFO: current directory: $ci_app_path"

当系统开始构建过程时,我会得到以下输出:

代码语言:javascript
运行
复制
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:

所以没有设置变量(或者只为该行设置:据我所知,每一行都是单独执行的)

我听说了推送/弹出机制,以达到我想要的功能,但没有找到任何细节,如何实现它。

更新:

正如我所想的,每一行都是单独执行的。所以变量作用域只有一行,它是在这里定义的:

脚本:

代码语言:javascript
运行
复制
pwd
ci_app_path=$(pwd) && echo "INFO: current directory: $ci_app_path"

输出:

代码语言:javascript
运行
复制
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

我不认为将整个脚本编写为一行代码是一个好主意/做法。

如何在执行构建脚本时设置变量?

附注:

实际上,我想知道为什么整个构建脚本必须不包含空行?,否则它将返回:

代码语言:javascript
运行
复制
No such file or directory

在这个地方构建失败

EN

回答 2

Stack Overflow用户

发布于 2016-12-02 19:58:22

Gitlab CI只播放shell命令,所以请执行*sh中的操作:

代码语言:javascript
运行
复制
export ci_app_path=$(pwd)
echo "INFO: current directory: $ci_app_path"
票数 8
EN

Stack Overflow用户

发布于 2013-11-28 22:23:49

在Gitlab-CI修复它之前,您可以创建一个Makefile并导出其中的变量,然后在Gitlab-CI中传递变量,例如

PWD=$PWD make

Makefile以a开头: export GOPATH=$(PWD)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19359905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档