gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:34:59 26 4
gpt4 key购买 nike

是否可以将一个脚本中设置的环境变量传递给 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

最佳答案

这已使用 Inject 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

    等等。

    *请注意,从 Bamboo 文档中,下划线是使用它的方式:
    https://confluence.atlassian.com/bamboo/bamboo-variables-289277087.html

    在 bash 中使用变量

    Bamboo 变量导出为 bash shell 变量。所有句号(句点)都转换为下划线。例如,bash 中的变量bamboo.my.variable 是$bamboo_my_variable。这与文件脚本任务(不是内联脚本任务)有关。

    关于shell - Bamboo - 在任务/脚本之间传递环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35068558/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com