OpenSearch/gradle/build-complete.gradle

60 lines
2.4 KiB
Groovy

import java.nio.file.Files
import org.elasticsearch.gradle.OS
String buildNumber = System.getenv('BUILD_NUMBER')
if (buildNumber) {
File uploadFile = file("build/${buildNumber}.tar.bz2")
project.gradle.buildFinished { result ->
println "build complete, generating: $uploadFile"
if (uploadFile.exists()) {
project.delete(uploadFile)
}
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)
}
}
}