mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 10:30:42 +00:00
150 lines
5.3 KiB
Groovy
150 lines
5.3 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
tools {
|
|
jdk "Temurin Java 21"
|
|
}
|
|
|
|
triggers {
|
|
githubPush()
|
|
}
|
|
|
|
environment {
|
|
DISCORD_WEBHOOK_URL = credentials('polydev-discord-webhook-url')
|
|
}
|
|
|
|
stages {
|
|
stage('Checkout') {
|
|
steps {
|
|
scmSkip(deleteBuild: true)
|
|
}
|
|
}
|
|
|
|
stage('Setup Gradle') {
|
|
steps {
|
|
sh 'chmod +x gradlew'
|
|
}
|
|
}
|
|
|
|
stage('Build') {
|
|
steps {
|
|
withGradle {
|
|
sh './gradlew build --rerun-tasks -x check'
|
|
sh './gradlew javadoc'
|
|
}
|
|
}
|
|
|
|
post {
|
|
success {
|
|
archiveArtifacts artifacts: 'platforms/fabric/build/libs/Terra-fabric*.jar,platforms/bukkit/build/libs/Terra-bukkit*-shaded.jar,platforms/allay/build/libs/Terra-allay*.jar,platforms/minestom/build/libs/Terra-minestom*.jar', fingerprint: true, onlyIfSuccessful: true
|
|
|
|
javadoc javadocDir: 'common/api/build/docs/javadoc', keepAll: true
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Tests') {
|
|
steps {
|
|
withGradle {
|
|
sh './gradlew test --rerun-tasks'
|
|
}
|
|
}
|
|
}
|
|
|
|
// stage('Deploy to snapshots repositories') {
|
|
// when {
|
|
// allOf {
|
|
// not { buildingTag() }
|
|
// not { expression { env.TAG_NAME != null && env.TAG_NAME.matches('v\\d+\\.\\d+\\.\\d+') } }
|
|
// }
|
|
// }
|
|
//
|
|
// steps {
|
|
// withCredentials([
|
|
// string(credentialsId: 'maven-signing-key', variable: 'ORG_GRADLE_PROJECT_signingKey'),
|
|
// string(credentialsId: 'maven-signing-key-password', variable: 'ORG_GRADLE_PROJECT_signingPassword'),
|
|
// usernamePassword(
|
|
// credentialsId: 'solo-studios-maven',
|
|
// passwordVariable: 'ORG_GRADLE_PROJECT_SoloStudiosSnapshotsPassword',
|
|
// usernameVariable: 'ORG_GRADLE_PROJECT_SoloStudiosSnapshotsUsername'
|
|
// )
|
|
// ]) {
|
|
// withGradle {
|
|
// sh './gradlew publishAllPublicationsToSoloStudiosSnapshotsRepository'
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
stage('Deploy to releases repositories') {
|
|
// when {
|
|
// allOf {
|
|
// buildingTag()
|
|
// expression { env.TAG_NAME != null && env.TAG_NAME.matches('v\\d+\\.\\d+\\.\\d+') }
|
|
// }
|
|
// }
|
|
|
|
steps {
|
|
withCredentials([
|
|
string(credentialsId: 'maven-signing-key', variable: 'ORG_GRADLE_PROJECT_signingKey'),
|
|
string(credentialsId: 'maven-signing-key-password', variable: 'ORG_GRADLE_PROJECT_signingPassword'),
|
|
usernamePassword(
|
|
credentialsId: 'solo-studios-maven',
|
|
passwordVariable: 'ORG_GRADLE_PROJECT_SoloStudiosReleasesPassword',
|
|
usernameVariable: 'ORG_GRADLE_PROJECT_SoloStudiosReleasesUsername'
|
|
),
|
|
// TODO: does not yet exist (uncomment once added)
|
|
// usernamePassword(
|
|
// credentialsId: 'sonatype-maven-credentials',
|
|
// passwordVariable: 'ORG_GRADLE_PROJECT_SonatypePassword',
|
|
// usernameVariable: 'ORG_GRADLE_PROJECT_SonatypeUsername'
|
|
// ),
|
|
// usernamePassword(
|
|
// credentialsId: 'codemc-maven-credentials',
|
|
// passwordVariable: 'ORG_GRADLE_PROJECT_CodeMCPassword',
|
|
// usernameVariable: 'ORG_GRADLE_PROJECT_CodeMCUsername'
|
|
// )
|
|
]) {
|
|
withGradle {
|
|
sh './gradlew publish'
|
|
//sh './gradlew publishAllPublicationsToSoloStudiosReleasesRepository'
|
|
// sh './gradlew publishAllPublicationsToSonatypeRepository'
|
|
// sh './gradlew publishAllPublicationsToCodeMCRepository'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
always {
|
|
discoverReferenceBuild()
|
|
|
|
// junit testResults: '**/build/test-results/*/TEST-*.xml'
|
|
|
|
recordIssues(
|
|
aggregatingResults: true,
|
|
enabledForFailure: true,
|
|
minimumSeverity: 'ERROR',
|
|
sourceCodeEncoding: 'UTF-8',
|
|
checksAnnotationScope: 'ALL',
|
|
sourceCodeRetention: 'LAST_BUILD',
|
|
tools: [java(), javaDoc()]
|
|
)
|
|
|
|
discordSend(
|
|
title: env.JOB_NAME + ' ' + env.BUILD_DISPLAY_NAME,
|
|
showChangeset: true,
|
|
enableArtifactsList: true,
|
|
link: env.BUILD_URL,
|
|
result: currentBuild.currentResult,
|
|
customAvatarUrl: 'https://github.com/PolyhedralDev.png',
|
|
customUsername: 'Solo Studios Jenkins',
|
|
webhookURL: env.DISCORD_WEBHOOK_URL,
|
|
)
|
|
|
|
cleanWs()
|
|
}
|
|
}
|
|
}
|