Я выполняю довольно сложную многопроектную сборку в Jenkins.
Перед сборкой задание Jenkins архивирует релиз-релиз всех источников, называемый escrow.zip, и оставляет его в папке. по имени build \ release.
Во время сборки файл escrow.zip удаляется - но только внутри Jenkins.
Это не происходит в «чистой» задаче, поскольку «clean» isnне запускаетсяДля отладки я добавил «doFirst» и «doLast», которые распечатывают содержимое каталога build \ release с помощью команды DOS для каждой задачи проекта. Задача «сборка» (которая не появляется в моем сценарии, поэтому должна быть заданием по умолчанию) «doLast» выполняется и показывает, что файл escrow.zip присутствует, но уже следующая задача «bootstrapScript» «doFirst» показывает, что файл отсутствует! Вывод (обрезанный по меткам и сводкам DOS) показан ниже.
Это происходит только в Jenkins, только после добавления новой задачи копирования:
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 вызывает Gradle с помощью команды gradle в «Выполнить пакетный скрипт windows» - поэтому я не верю, что существует какое-либо смешиваниеиз JVM Jenkins и Gradle - хотя, конечно, некоторые переменные среды 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,069,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.