我在詹金斯(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
吗?谢谢。