如何在詹金斯中获取环境变量的值

时间:2019-04-04 09:44:31

标签: bash shell maven jenkins environment-variables

我正在尝试在构建步骤Invoke Maven中插入一个环境变量,该变量的值是在构建前的Execute Shell阶段设置的

    #!/bin/bash
    ipAddressHub=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-hub)
    echo $ipAddressHub
    echo 'ipAddress=$ipAddressHub' > ipAddress.properties

现在,我想获取存储在ipAddress中的ipAddress.properties的值。我在Inject environment variables之后使用Execute Shell,并在ipAddress.properties字段中提供Properties File Path(不确定这是否正确),然后使用构建步骤Invoke Maven Artifactory和在下面提供命令。

   clean install -DipAddress=${ipAddressHub} -Denv=${env} -Durl=${appURL} -DserverIP=${ipAddress}

但是我没有在serverIP中获得该值,而是在控制台中获得了${ipAddressHub}。我知道我在犯一些错误,有人可以指出正确的方法是什么吗?

2 个答案:

答案 0 :(得分:0)

进行了一些浏览并找到了答案。

您只能在双引号字符串中嵌入变量。所以问题是

echo 'ipAddress=$ipAddressHub' > ipAddress.properties

将其更改为

echo 'ipAddress='"$ipAddressHub"'' > ipAddress.properties

它就像一个魅力

答案 1 :(得分:0)

我没有使用过插件(至少有一段时间没有使用过),并且我建议您只是错误地引用了它?

我相信是否要将其添加为环境变量(并且可以通过单击构建屏幕左侧的“环境变量”来检查它是否正在添加)。

您应该能够像下面这样引用它吗?

${env.ipAddressHub}

这是未经测试的。只是从内存中消失。