在gradle任务之间,预构建的发行文件从build文件夹中消失-但仅在Jenkins内部

我正在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。

singhan 回答:在gradle任务之间,预构建的发行文件从build文件夹中消失-但仅在Jenkins内部

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3144290.html

大家都在问