我们的框架工作是以整个项目(从Perforce)复制到Linux机器(远程VM机器)的方式开发的,并且执行Maven命令来运行测试用例。一切都是通过詹金斯推动的。
执行测试用例后,我使用执行shell 后Maven构建步骤删除工作区。正如所料,它正在删除工作区。删除工作区后我的问题:不知道为什么它再次解析POM?尽管测试用例成功执行,但这会导致作业失败。
这是我配置删除工作区的方式:
在运行作业时,它正在按预期删除工作区,但解析POM删除后的内容。显然POM不会在那里删除工作区。
INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:11:26.091s
[INFO] Finished at: Mon Nov 02 22:50:42 PST 2015
[INFO] Final Memory: 133M/489M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
Waiting for Jenkins to finish collecting data
channel stopped
[testjob] $ /bin/sh -xe /tmp/hudson464395510348605766.sh
+ echo testjob
testjob
+ delworkspace=/opt/hudson/workspace/testjob
+ rm -rf /opt/hudson/workspace/testjob
ERROR: Failed to parse POMs
java.io.IOException: java.io.FileNotFoundException: /opt/hudson/workspace/testjob/pom.xml (No such file or directory)
at hudson.remoting.FastPipedInputStream.read(FastPipedInputStream.java:169)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Notifying upstream projects of job completion
Finished: FAILURE
我是否错过配置中的任何内容?我做了所有的功课,但没有运气。
答案 0 :(得分:1)
您可以轻松地使用Parameterized Trigger Plugin。
你应该做什么:创建一个新工作(比如名为cleanWS
),当构建完成时,它将触发cleanWS
&立即删除你的工作空间。
转到testjob
configure - >从Execute shell
部分选择Build
- >复制并粘贴echo delworkspace=/opt/hudson/workspace/$JOB_NAME >> file.properties
。
在Post-build Actions
部分:
Add post-build action -> Trigger parameterized build on the projects
Projects to build -> <job name e.g. cleanWS>
Trigger when build is -> Complete (always trigger)
Add Parameters -> Parameters from properties file
Use properties from file -> file.properties
按save
。
然后转到cleanWS
配置 - &gt;从Execute shell
部分选择Build
- &gt;复制并粘贴rm -rf $delworkspace
。
N.B。使用此cleanWS
作业,您可以删除所有作业的工作区。
答案 1 :(得分:0)