From cc5e59026fb8f719aa6a2f51868662dcd1ec6ffe Mon Sep 17 00:00:00 2001 From: konsthol Date: Tue, 27 May 2025 15:43:17 +0300 Subject: [PATCH] add job checker --- vars/getJobStatus.groovy | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 vars/getJobStatus.groovy 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 +}