Geyser/bootstrap/fabric/Jenkinsfile

106 lines
4 KiB
Text
Raw Normal View History

2020-10-08 00:01:01 +00:00
pipeline {
agent any
tools {
2021-06-07 16:42:42 +00:00
gradle 'Gradle 7'
2021-12-02 16:14:12 +00:00
jdk 'Java 17'
2020-10-08 00:01:01 +00:00
}
parameters{
booleanParam(defaultValue: false, description: 'Skip Discord notification', name: 'SKIP_DISCORD')
}
2020-10-08 00:01:01 +00:00
options {
buildDiscarder(logRotator(artifactNumToKeepStr: '20'))
}
2020-10-08 00:01:01 +00:00
stages {
stage ('Build') {
steps {
2021-06-07 16:35:43 +00:00
sh './gradlew clean build --refresh-dependencies'
2020-10-08 00:01:01 +00:00
}
post {
success {
2020-10-08 16:54:53 +00:00
archiveArtifacts artifacts: 'build/libs/*.jar', excludes: 'build/libs/Geyser-Fabric-*-sources*.jar,build/libs/Geyser-Fabric-*-all*.jar', fingerprint: true
2020-10-08 00:01:01 +00:00
}
}
}
2021-01-08 18:13:13 +00:00
stage ('Deploy') {
when {
2021-06-07 16:33:54 +00:00
anyOf {
2021-12-02 16:14:12 +00:00
branch "java-1.18"
2021-06-07 16:33:54 +00:00
}
2021-01-08 18:13:13 +00:00
}
steps {
rtGradleDeployer(
id: "GRADLE_DEPLOYER",
serverId: "opencollab-artifactory",
releaseRepo: "maven-releases",
snapshotRepo: "maven-snapshots"
)
rtGradleResolver(
id: "GRADLE_RESOLVER",
serverId: "opencollab-artifactory",
)
rtGradleRun (
usesPlugin: false,
2021-06-07 21:36:25 +00:00
tool: 'Gradle 7',
2021-01-08 18:51:39 +00:00
rootDir: "",
2021-01-08 18:13:13 +00:00
buildFile: 'build.gradle',
2021-01-09 16:53:09 +00:00
tasks: 'build artifactoryPublish',
2021-01-08 18:13:13 +00:00
deployerId: "GRADLE_DEPLOYER",
resolverId: "GRADLE_RESOLVER"
)
rtPublishBuildInfo(
serverId: "opencollab-artifactory"
)
}
}
2020-10-08 00:01:01 +00:00
}
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()
script {
if(!params.SKIP_DISCORD) {
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
}
}
2020-10-08 00:01:01 +00:00
}
}
}
}