shell – Bamboo – 在任务/脚本之间传递环境变量

是否可以在Bamboo中将设置在一个脚本中的环境变量传递给另一个脚本?

例如,我按如下所示设置Go,并希望后续任务(脚本)可以访问我在此处导出的PATH和GOPATH.

set -e

if [ ! -d "go" ]; then
    wget -q https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz
    tar -xzf go1.5.linux-amd64.tar.gz
fi

export GOROOT=$(pwd)/go

mkdir -p gopath/
export GOPATH=$(pwd)/gopath
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

解决方法

这是使用Injecct Variables插件实现的,该插件自5.7以来捆绑:
https://marketplace.atlassian.com/plugins/com.atlassian.bamboo.plugins.bamboo-variable-inject-plugin/server/overview

这样做的方法如下:

>在初始任务中,让脚本将状态存储到文件中(以key = value格式),例如:

echo “MYVAR=$(cat some_variable_info_file)” >> build/docker.properties

>配置以下Inject任务,将上一步中的属性文件读入Bamboo变量.将PATH设置为属性文件(例如build / docker.properties)并设置命名空间,例如docker
>要在下一个任务中使用此变量,可以将其称为:
$bamboo.docker.MYVAR其中docker是命名空间,MYVAR是属性文件属性的键.例如,它可以被称为:

echo $bamboo.docker.MYVAR

这意味着您仍然可以使用基于文件方法,只需确保其中的数据类型为:

some_key1=some_value1
some_key2=some_value2

等等

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...