diff --git a/vars/getJobStatus.groovy b/vars/getJobStatus.groovy new file mode 100644 index 0000000..dbf4414 --- /dev/null +++ b/vars/getJobStatus.groovy @@ -0,0 +1,24 @@ +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 first build number + def firstBuildNumber = jobData.firstBuild?.number + + if (firstBuildNumber == null) { + error("Pipeline '${jobName}' has **never** run! 🚨 Stopping execution.") + } + + echo "Pipeline '${jobName}' has **run at least once** ✅ First build number: ${firstBuildNumber}" + return firstBuildNumber +}