作者:萧逸 | 来源:互联网 | 2023-08-25 18:09
我正在Jenkins中运行一个相当复杂的多项目构建。
在构建之前,Jenkins作业会压缩名为escrow.zip的所有源的发布工件,并将其保留在名为build \ release的文件夹中。
在构建过程中,escrow.zip文件将被删除-但仅在Jenkins内部。
“清洁”任务中没有发生此情况,因为没有运行“清洁”。为了调试,我添加了一个“ doFirst”和“ doLast”,通过DOS命令将build \ release目录内容打印到每个项目任务。任务“汇编”(不会出现在我的脚本中,因此必须是默认任务)“ doLast”执行并显示escrow.zip文件存在,但是下一个任务“ bootstrapScript”“ doFirst”显示文件丢失!输出(修剪后的DOS标签和摘要)如下所示。
仅在添加新的“复制”任务之后,这种情况才会在詹金斯中发生:
task bootstrapScript(type: Copy) {
from('scripts') {
include 'bootstrap-setup.sh'
}
into "$rootProject.buildDir/release"
rename('bootstrap-setup.sh',"bootstrap-setup-${version}.sh")
}
所以我对此任务很怀疑(在不包含此新任务的开发分支中不会发生。)
即使在执行作业的从属服务器上实际的Jenkins工作区中,我也无法在Jenkins之外重现它。当我在DOS外壳程序中交互式运行命令时,托管zip文件不会消失。
我也很好奇为什么文件似乎在任务之间消失而不是在任务期间消失。在使文件消失的Gradle任务之间会发生什么?
尽管它发生在Jenkins中,但Jenkins正在通过“执行Windows批处理脚本”中的gradle命令调用Gradle-因此,我不认为Jenkins和Gradle JVM有任何混合-尽管某些Jenkins环境变量可能会触发差异。
我还无法将这个问题简化为一个小的脚本。我已经附上了正在中断的特定项目脚本,但是它是一个更大项目的一部分,我无法附加所有内容。我知道这使解决问题变得困难-现在,我正在寻找调试建议:如何找出文件在任务之间消失的原因?
00:01:06.095 > Task :buildSrc:compileJava NO-SOURCE
00:01:06.188 > Task :buildSrc:compileGroovy UP-TO-DATE
00:01:06.189 > Task :buildSrc:processResources NO-SOURCE
00:01:06.190 > Task :buildSrc:classes UP-TO-DATE
00:01:06.191 > Task :buildSrc:jar UP-TO-DATE
00:01:06.192 > Task :buildSrc:assemble UP-TO-DATE
00:01:06.192 > Task :buildSrc:compileTestJava NO-SOURCE
00:01:06.193 > Task :buildSrc:compileTestGroovy NO-SOURCE
00:01:06.193 > Task :buildSrc:processTestResources NO-SOURCE
00:01:06.193 > Task :buildSrc:testClasses UP-TO-DATE
00:01:06.194 > Task :buildSrc:test NO-SOURCE
00:01:06.194 > Task :buildSrc:check UP-TO-DATE
00:01:06.195 > Task :buildSrc:build UP-TO-DATE
00:01:07.589
00:01:07.589 > Task :assemble
00:01:07.591 Directory of C:\jenkins\workspace\project\build\release
00:01:07.592 11/07/2019 08:27 AM 6,069,548 escrow.zip
00:01:07.594
00:01:07.594 Directory of C:\jenkins\workspace\project\build\release
00:01:07.595 11/07/2019 08:27 AM 6,548 escrow.zip
00:01:07.688
00:01:07.689 > Task :bootstrapScript
00:01:07.689 Directory of C:\jenkins\workspace\project\build\release
00:01:07.691 0 File(s) 0 bytes
00:01:07.692
00:01:07.692 Directory of C:\jenkins\workspace\project\build\release
00:01:07.692 11/07/2019 08:27 AM 5,641 bootstrap-setup-3.3.0-snAPSHOT.sh
00:01:07.693
环境是Gradle 5.6.2; Java 8u191-x64;詹金斯2.190.2; Windows Server 2012 R2。