我的问题在某种程度上延续了Cloudbees jenkins does not trigger jobs on promotion。回顾一下:我正在使用cloudbees上的jenking。我有一个名为“包”的工作,有几个促销流程。第一个促销流程“推广到e2etesting”配置为:在成功运行名为“testing”的作业后进行提升。 “测试”被配置为“包”作业的下游作业(构建后构建动作部分的其他项目)。这个促销活动很好,一旦“推广到e2etesting”被执行,一个名为“e2e-testing”的新工作就被解雇了。
我的“包”工作有其他推广流程,其中一个被命名为“促销到暂存”,标准为:“当以下下游项目成功构建时:e2e-testing”。不幸的是,在成功完成“e2e-testing”(由“促进e2etesting”引发)之后,“促销到分期”不会发生。
在“e2e-testing”作业控制台输出中,我可以看到:
WARNING: package appears to use this job as a promotion criteria, but no fingerprint is
recorded. Fingerprint needs to be enabled on both this job and package.
See http://hudson.gotdns.com/wiki/display/HUDSON/Fingerprint for more details
我不知道警告是否与我的问题有关,但另一方面很奇怪,因为我有“记录文件指纹......”启用“e2e测试工作”和“打包”工作(似乎已经开箱即用 - 当我点击“护照图标”在“包”作业构建的工件上时,我可以看到它在其他工作中的使用。
在jenkins日志中,我可以看到:
SEVERE: I/O error in channel s-74638b6e
java.io.IOException: Unexpected termination of the channel at
hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)
Caused by: java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at hudson.remoting.Command.readFrom(Command.java:92)
at hudson.remoting.ClassicCommandTransport.read(ClassicCommandTransport.java:59)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)
May 24, 2013 3:43:31 AM hudson.model.Run execute
INFO: e2e-testing #10 main build action completed: SUCCESS
May 24, 2013 3:43:19 AM hudson.slaves.WorkspaceList log
FINE: Executor #0 for s-74638b6e : executing e2e-testing #10 acquired /scratch/jenkins/workspace/e2e-testing
May 24, 2013 3:43:14 AM hudson.model.Run execute
INFO: package » promotion » promotion-to-e2e-testing #10 main build action completed: SUCCESS
有什么想法吗?
答案 0 :(得分:0)
e2e-testing
不需要是package
的已配置下游作业(即直接作为构建后操作启动),但版本之间需要有下游关系由指纹识别。换句话说,e2e-testing
的某些(成功)构建必须记录输入工件的指纹,该指纹与某些package
构建产生的工件的指纹相匹配。发生这种情况时,应在promotion-to-staging
的构建版本上触发package
。
鉴于您看到的警告消息,我怀疑e2e-testing
要么不记录指纹,要么记录指纹但没有匹配package
产生的工件。您应该能够通过浏览指纹链接来检查这一点,以获得成功的e2e-testing
版本,验证是否列出了预期的工件,然后单击该工件的详细信息并验证它也是列为由package
版本“生成”。