pipeline { agent any stages { stage('Restore tlw-database-tool') { steps { copyArtifacts filter: '**/tlw-database-tool-1.0.jar', fingerprintArtifacts: true, projectName: 'build tlw-database-tool', selector: lastSuccessful(), target: '.' } } stage('GetAndWriteChecksum') { steps { script { String jdkPath = tool name: 'OpenJDK22', type: 'jdk' withCredentials([ usernamePassword(credentialsId: 'aws', usernameVariable: 'AWS_ACCESS_KEY_ID', passwordVariable: 'AWS_SECRET_ACCESS_KEY'), usernamePassword(credentialsId: 'forum_database', usernameVariable: 'TLW_DATABASE_USERNAME', passwordVariable: 'TLW_DATABASE_PASSWORD'), usernamePassword(credentialsId: 'forum_user', usernameVariable: 'FORUM_USERNAME', passwordVariable: 'FORUM_PASSWORD') ]) { withEnv([ "JAVA_HOME=${jdkPath}/jdk-22.0.2" ]) { String checksum_tippliga = sh returnStdout: true, script: "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode PostChecksum --season ${season} --league 1 --configFile Tippliga 2>&1" writeFile file: 'checksum_tippliga.txt', text: checksum_tippliga archiveArtifacts artifacts: 'checksum_tippliga.txt', followSymlinks: false String checksum_wtlpokal = sh returnStdout: true, script: "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode PostChecksum --season ${season} --league 1 --configFile WTL-Pokal 2>&1" writeFile file: 'checksum_wtlpokal.txt', text: checksum_wtlpokal archiveArtifacts artifacts: 'checksum_wtlpokal.txt', followSymlinks: false } } } } } stage('CompareChecksums') { steps { copyArtifacts filter: 'checksum*', fingerprintArtifacts: true, projectName: 'CheckGistUpdates', selector: lastWithArtifacts(), target: 'last' script { String checksumTippliga = readFile 'checksum_tippliga.txt' String lastChecksumTippliga = readFile 'last/checksum_tippliga.txt' String checksumWTLPokal = readFile 'checksum_wtlpokal.txt' String lastChecksumWTLPokal = readFile 'last/checksum_wtlpokal.txt' if(!checksumTippliga.equals(lastChecksumTippliga)){ telegramSendManual('Tippliga Update') build wait: false, job: 'TippligaUpdater' } if(!checksumWTLPokal.equals(lastChecksumWTLPokal)){ telegramSendManual('WTL-Pokal Update') build wait: false, job: 'WTLPokalUpdater' } } } } } post { failure { telegramSendManual("Build failed!\n${env.BUILD_URL}console") } } } def telegramSendManual(String text) { sleep 1 def encodedMessage = URLEncoder.encode(text, "UTF-8") println encodedMessage httpRequest( httpMode: 'GET', contentType: 'APPLICATION_JSON', responseHandle: 'NONE', url: "https://api.telegram.org/bot1298223079:AAEplcQpfzFG59qNYAYuSbJKtB9HMXCCE_U/sendMessage?text=$encodedMessage&chat_id=459231986&disable_web_page_preview=true", wrapAsMultipart: false, consoleLogResponseBody: true ) }