如何将信息从一个晋升步骤转移到下一个



我们已经建立了Jenkinsjobs,并制定了几个提升步骤,这些步骤反映了我们的QS/测试工作流程。在一次推广中,我们触发了在另一个Jenkins主服务器上的构建。在升级版本的日志中记录了远程机器上的作业具有的版本号:

This job is build #[26] on the remote server.

这个构建号应该在下一个promotions步骤中可用,以便设置一个指向该构建号的URL。

我现在的做法是:

让两个促销都只在master上运行
在第二次推广中,我添加了一个执行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随后用于注入环境变量。

这种解决方案的缺点是它依赖于master目录结构。

是否可以在不直接从文件系统读取日志的情况下获得远程触发构建的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

假设您使用了正确的项目,jenkins:中存在问题

https://issues.jenkins-ci.org/browse/JENKINS-30122

您必须为匿名用户设置hudson.model.Item.Read权限。

或者更好地阅读插件的权限部分:https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+插件#CopyArtifactPlugin Permissionstocopyrartifact

相关内容

最新更新