Java-Installer/Jenkinsfile

68 lines
2.5 KiB
Groovy

pipeline {
agent {
// Use the kubernetes agent
kubernetes {
label 'java-17-gradle-8'
}
}
stages {
stage('Build') {
steps {
container('java-17-gradle-8') {
script {
if (env.GIT_BRANCH != "main" && env.GIT_BRANCH != "master") {
// Only test to build the installer when we are not on the master branch
sh 'gradle --no-build-cache build'
} else {
// Get the version to release
def version = sh (
script: 'git describe --tags --abbrev=0',
returnStdout: true
).replace("\n", "")
if (version == null || version.allWhitespace) {
error("Commit is not tagged with a version")
}
def versionV = version.replaceFirst("v", "")
// Write the version into the version file
sh "echo ${versionV} > VERSION"
echo "Building and publishing version ${versionV}"
// Build and publish
withCredentials([
file(credentialsId: 'MAVEN_PUBLISH_SONATYPE_GRADLE_PROPERTIES', variable: 'SONATYPE_CREDENTIALS')
]) {
// Build and publish
sh 'cp \${SONATYPE_CREDENTIALS} ./gradle.properties'
sh 'gradle --no-build-cache build publishToMavenLocal publishToSonatype closeAndReleaseSonatypeStagingRepository --warning-mode all'
sh 'rm ./gradle.properties'
}
}
}
}
}
}
}
post {
success {
echo "Build successfull"
}
// Clean after build
cleanup {
cleanWs()
}
failure {
emailext body: "${currentBuild.currentResult}: Job ${env.JOB_NAME} build ${env.BUILD_NUMBER}\n More info at: ${env.BUILD_URL}",
recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']],
subject: "Jenkins Build ${currentBuild.currentResult}: Job ${env.JOB_NAME}"
}
}
}