def projectTitle = "ShowControl"

pipeline {
  agent any

  tools {
    maven "maven-3.9.0"
    jdk "jdk11-adoptium"
  }

  stages {
    stage('Build Artifact') {
      steps {
        sh "mvn clean package"
        archiveArtifacts artifacts: 'target/*.jar'
      }
    }
  }

  post {
    always {
      node {
        script {
          def discordFooter = "Copyright © SBDevelopment"
          def buildNumber = currentBuild.number
          def buildStatus = currentBuild.result ?: 'SUCCESS'
          def prevBuild = currentBuild.getPreviousBuild()
          def prevGitRev = prevBuild ? env.GIT_PREVIOUS_COMMIT : ''
          def gitRange = prevGitRev ? "${prevGitRev}..HEAD" : "HEAD~1..HEAD"
          def gitChanges = sh(returnStdout: true, script: "git log --pretty=format:\"- %h %s\" ${gitRange}").trim()
          def discordTitle = "Build #${buildNumber} - ${projectTitle}"
          def discordDescription = "**Status:** ${buildStatus}\n**Changes:**\n${gitChanges}"

          discordSend(
            webhookURL: 'https://discord.com/api/webhooks/1091375346064035980/PRy-w2ZPpYjwYMllnbw6mHD_onFcXSbvq9BYkfP8-mBXi-bB-y1XzJkC4SDwHmffcnjS',
            title: discordTitle,
            description: discordDescription,
            footer: discordFooter,
            result: currentBuild.currentResult
          )
        }
      }
    }
  }
}