From b4ae207e1ef579cea4bc87099fe5123bbbf56715 Mon Sep 17 00:00:00 2001 From: Alpar Torok Date: Tue, 22 Oct 2019 17:03:07 +0300 Subject: [PATCH] Relative paths, jornalctl in additional logs (#48276) * Relative paths, jornalctl in additional logs This PR fixes the archive generation to preserve the paths relative to the project directory. It also fixes calling journalctl to get the system log. * explicitly remove the file we are building * Skip files locked on windows * Extended readability probe * Try to read the file ahead on windows * Make the tar a best effort * Catch all exceptions --- gradle/build-complete.gradle | 86 ++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/gradle/build-complete.gradle b/gradle/build-complete.gradle index 005aa74d49c..126d301b450 100644 --- a/gradle/build-complete.gradle +++ b/gradle/build-complete.gradle @@ -11,49 +11,49 @@ if (buildNumber) { project.delete(uploadFile) } - OS.current() - .conditional() - .onUnix { - project.exec { - ignoreExitValue = true - workingDir projectDir - commandLine 'bash', '-c', 'journalctl --since "1 hour ago" 2>&1 > journalctl.log' - } - } - .onWindows { - - } - .onMac { - - } - - ant.tar(destfile: uploadFile, compression: "bzip2", longfile: "gnu") { - fileTree(projectDir) - .include("**/*.hprof") - .include("**/reaper.log") - .include("**/journalctl.log") - .include("**/build/testclusters/**") - .exclude("**/build/testclusters/**/data/**") - .exclude("**/build/testclusters/**/distro/**") - .exclude("**/build/testclusters/**/repo/**") - .exclude("**/build/testclusters/**/extract/**") - .filter { Files.isRegularFile(it.toPath()) } - .each { fileset(file: it) } - - - fileset(dir: "${gradle.gradleUserHomeDir}/daemon/${gradle.gradleVersion}", followsymlinks: false) { - include(name: "**/daemon-${ProcessHandle.current().pid()}*.log") - } - - if (Files.isReadable(file("/var/log/").toPath())) { - Files.list(file("/var/log/").toPath()) - .filter { it.fileName.endsWith(".log") } - .filter { Files.isReadable(it) } - .filter { Files.isRegularFile(it) } - .forEach { - fileset(file: it) - } + def isWindows = OS.current() == OS.WINDOWS + if (OS.current() == OS.LINUX) { + project.exec { + ignoreExitValue = true + workingDir projectDir + commandLine 'bash', '-c', 'journalctl --since "1 hour ago" 2>&1 > journalctl.log' } } + + try { + ant.tar(destfile: uploadFile, compression: "bzip2", longfile: "gnu") { + fileset(dir: projectDir) { + fileTree(projectDir) + .include("**/*.hprof") + .include("**/reaper.log") + .include("**/journalctl.log") + .include("**/build/testclusters/**") + .exclude("**/build/testclusters/**/data/**") + .exclude("**/build/testclusters/**/distro/**") + .exclude("**/build/testclusters/**/repo/**") + .exclude("**/build/testclusters/**/extract/**") + .filter { Files.isRegularFile(it.toPath()) } + .each { + include(name: projectDir.toPath().relativize(it.toPath())) + } + } + + fileset(dir: "${gradle.gradleUserHomeDir}/daemon/${gradle.gradleVersion}", followsymlinks: false) { + include(name: "**/daemon-${ProcessHandle.current().pid()}*.log") + } + + if (Files.isReadable(file("/var/log/").toPath())) { + Files.list(file("/var/log/").toPath()) + .filter { it.fileName.endsWith(".log") } + .filter { Files.isReadable(it) } + .filter { Files.isRegularFile(it) } + .forEach { + fileset(file: it) + } + } + } + } catch (Exception e) { + logger.lifecycle("Failed to archive additional logs", e) + } } -} \ No newline at end of file +}