在Shell脚本中获取动态Jenkins环境变量的值

时间:2019-04-02 16:11:46

标签: shell jenkins environment-variables

我在詹金斯(Jenkins)中有一个多重工作,称为相同的下游工作。下游作业名称为run-ui-test。多作业触发同时运行的4个下游作业。一旦所有下游作业都执行完,我想将工件复制到多作业中。我检查了Copy artifacts from different project,但由于我正在调用相同的下游作业,因此它对我不起作用,因此我只得到了最近的工件。因此,我决定使用jenkins API从下游作业中下载工件。我检查了multijob的环境变量,发现它在下面创建了环境变量,并且根据code

为它分配了内部版本号值
RUN_UI_TEST_1_BUILD_NUMBER = 45
RUN_UI_TEST_2_BUILD_NUMBER = 46
RUN_UI_TEST_3_BUILD_NUMBER = 47
RUN_UI_TEST_4_BUILD_NUMBER = 48

现在,在我的shell脚本中,我正在尝试获取这些内部版本号值,但它不起作用

for (( i=1; i<=$TRIGGERED_BUILD_RUN_COUNT_IOS_UITESTS_JOB; i++ ))
do
    prefix="RUN_UI_TEST_${i}"
    postfix="_BUILD_NUMBER"
    buildNumber=eval "echo $"$prefix$postfix""
    buildURL="$JENKINS_URL/job/$LAST_TRIGGERED_JOB_NAME/$buildNumber"
    $artifactURL = "$buildURL/artifact/uitest-report.xml"
    echo $artifactURL
done

我没有得到buildNumber,因为如果命令成功执行或发生错误,则eval的返回值为0,它将返回错误代码而不是实际值。

有人可以帮助我建立artifactURL吗?谢谢。

0 个答案:

没有答案