25 lines
1.3 KiB
Groovy
25 lines
1.3 KiB
Groovy
import groovy.json.JsonSlurper
|
|
|
|
def call(String jobName) {
|
|
def jobURL = "http://jenkins-server.default.svc.cluster.local:8080/job/${jobName}/api/json"
|
|
def jenkinsUser = "admin"
|
|
def jenkinsToken = "Knd6GttfuDRZI0r7EkCiPQ"
|
|
|
|
// Fetch JSON response from Jenkins API
|
|
def response = sh(script: "curl -s -u '${jenkinsUser}:${jenkinsToken}' ${jobURL}", returnStdout: true).trim()
|
|
|
|
// Parse JSON
|
|
def jsonSlurper = new JsonSlurper()
|
|
def jobData = jsonSlurper.parseText(response)
|
|
|
|
// Extract last successful build number
|
|
def lastSuccessfulBuildNumber = jobData.lastSuccessfulBuild?.number
|
|
|
|
if (lastSuccessfulBuildNumber == null || lastSuccessfulBuildNumber < 100) {
|
|
echo "Pipeline '${jobName}' has **never successfully completed**! 🚨 Stopping execution."
|
|
sh(script: "curl -X POST -u '${jenkinsUser}:${jenkinsToken}' http://jenkins-server.default.svc.cluster.local:8080/job/${jobName}/build?token=vrdCItGUGTBeqdhNER9ELTC9lEaugjuyARnFlqT2xifTFWsuoJ08Ssws31Qe+lY5q+fIdoVfQwv4Pcn4SV+IXQcyBQEtoXmegnNKdEpRDNisrQy+R1vIuOBgpQOT/r6pFZmoYsuks71oF/AnrTw7Cj9nhSn4XtUt8enAnPJJ7uI=")
|
|
}
|
|
|
|
echo "Pipeline '${jobName}' has **executed successfully at least once** ✅ Last successful build number: ${lastSuccessfulBuildNumber}"
|
|
return lastSuccessfulBuildNumber
|
|
} |