3
0
Mirror von https://github.com/GeyserMC/Geyser.git synchronisiert 2024-09-17 00:33:47 +02:00
Geyser/bootstrap/fabric/Jenkinsfile

106 Zeilen
4.0 KiB
Plaintext

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