From 9e62c6369ce2aca0fbf690ab7c83aa1d3de86075 Mon Sep 17 00:00:00 2001 From: DoctorMacc Date: Wed, 7 Oct 2020 20:01:01 -0400 Subject: [PATCH] Jenkinsfile attempt --- bootstrap/fabric/Jenkinsfile | 62 ++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 bootstrap/fabric/Jenkinsfile diff --git a/bootstrap/fabric/Jenkinsfile b/bootstrap/fabric/Jenkinsfile new file mode 100644 index 000000000..3e8155cd9 --- /dev/null +++ b/bootstrap/fabric/Jenkinsfile @@ -0,0 +1,62 @@ +pipeline { + agent any + tools { + jdk 'Java 8' + } + options { + buildDiscarder(logRotator(artifactNumToKeepStr: '20')) + } + stages { + stage ('Build') { + steps { + sh './gradlew clean build' + } + post { + success { + archiveArtifacts artifacts: 'bootstrap/**/target/*.jar', excludes: 'bootstrap/**/target/original-*.jar', fingerprint: true + archiveArtifacts artifacts: 'build/libs/*.jar', excludes: 'build/libs/*-dev.jar' 'build/libs/*-sources*jar' 'build/libs/*-all.jar', fingerprint: true + } + } + } + } + + post { + always { + script { + def changeLogSets = currentBuild.changeSets + def message = "**Changes:**" + + if (changeLogSets.size() == 0) { + message += "\n*No changes.*" + } else { + def repositoryUrl = scm.userRemoteConfigs[0].url.replace(".git", "") + def count = 0; + def extra = 0; + for (int i = 0; i < changeLogSets.size(); i++) { + def entries = changeLogSets[i].items + for (int j = 0; j < entries.length; j++) { + if (count <= 10) { + def entry = entries[j] + def commitId = entry.commitId.substring(0, 6) + message += "\n - [`${commitId}`](${repositoryUrl}/commit/${entry.commitId}) ${entry.msg}" + count++ + } else { + extra++; + } + } + } + + if (extra != 0) { + message += "\n - ${extra} more commits" + } + } + + env.changes = message + } + deleteDir() + withCredentials([string(credentialsId: 'geyser-discord-webhook', variable: 'DISCORD_WEBHOOK')]) { + discordSend description: "**Build:** [${currentBuild.id}](${env.BUILD_URL})\n**Status:** [${currentBuild.currentResult}](${env.BUILD_URL})\n${changes}\n\n[**Artifacts on Jenkins**](https://ci.nukkitx.com/job/Geyser)", footer: 'Cloudburst Jenkins', link: env.BUILD_URL, successful: currentBuild.resultIsBetterOrEqualTo('SUCCESS'), title: "${env.JOB_NAME} #${currentBuild.id}", webhookURL: DISCORD_WEBHOOK + } + } + } +}