我们已经设置了Jenkinsjobs,其中有几个促销步骤反映了我们的QS /测试工作流程。在一个促销中,我们在其他Jenkins主服务器上触发构建。在促销构建的日志中记录了远程计算机上的作业的编号值:
This job is build #[26] on the remote server.
此buildnumber应该可以在下一个的promotiontep中使用,以便将指向该buildnumber的URL设置在一起。
我现在的做法是:
让两个促销活动仅在主人上运行 在第二次促销中,我添加了一个执行shell命令的操作:
crlog=${WORKSPACE}/../promotions/03-CREATE_CHANGE_REQUEST/builds/lastSuccessfulBuild/log
crbuildnr=$( grep 'This job is build #\[.*\] on the remote server.' ${crlog} | tr -d [:alpha:][:punct:][:space:])
echo "crbuildnr=${crbuildnr}" > CR-Buildnummer.txt
然后使用文件CR-Buildnummer.txt注入环境变量。
此解决方案的缺点在于它取决于主服务器目录结构。
是否可以在不直接从文件系统读取日志的情况下获取远程触发构建的Buildnumber?
我已经尝试过“复制工件”,但我不知道如何命名应该从中复制工件的项目。我尝试了${PROMOTED_JOB_NAME}/promotion/03-CREATE_CHANGE_REQUEST
,因为这就是环境变量JOB_NAME。但我得到了
ERROR: Unable to find project for artifact copy: TEST_FIT_CQ_Create_FGV/promotion/03-CREATE_CHANGE_REQUEST
This may be due to incorrect project name or permission settings; see help for project name in job configuration.
我们正在使用:
詹金斯1.609.2
推广构建插件2.24
复制神器插件1.36
答案 0 :(得分:0)
假设您使用了正确的项目,jenkins中存在问题:
https://issues.jenkins-ci.org/browse/JENKINS-30122
您必须为匿名用户设置权限hudson.model.Item.Read。
或者更好地阅读插件的权限部分: https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin#CopyArtifactPlugin-Permissionstocopyartifact