{"id":2050,"date":"2017-12-07T09:22:48","date_gmt":"2017-12-07T09:22:48","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/?p=2050"},"modified":"2021-11-18T06:48:15","modified_gmt":"2021-11-18T06:48:15","slug":"script-to-check-the-build-status-of-a-jenkins-job","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/script-to-check-the-build-status-of-a-jenkins-job\/","title":{"rendered":"Script to check the build status of a Jenkins job"},"content":{"rendered":"<p><strong>Using JSON &amp; Curl<\/strong><\/p>\n<p>[code]BUILD_STATUS=$(curl &#8211;user USER:TOKEN_VALUE &#8211;silent $BUILD_URLapi\/json | jq -r &#8216;.result&#8217;)<br \/>echo $BUILD_STATUS[\/code]<\/p>\n<p><strong>Using jenkins Plugins<\/strong><br \/>Plugins Name &#8211; Conditional Build Step<\/p>\n<p>For Implementations, Please check here.<br \/>https:\/\/stackoverflow.com\/questions\/11125598\/getting-the-build-status-in-post-build-script<\/p>\n<p><strong>Using Python &amp; Json<\/strong><\/p>\n<p>[code]&lt;\/pre&gt;<br \/>#!\/usr\/bin\/python<br \/>#<br \/># author: ajs<br \/># license: bsd<br \/># copyright: re2<\/p>\n<p>import json<br \/>import sys<br \/>import urllib<br \/>import urllib2<\/p>\n<p>jenkinsUrl = &#8220;https:\/\/jenkins.example.com\/job\/&#8221;<\/p>\n<p>if len( sys.argv ) &gt; 1 :<br \/>jobName = sys.argv[1]<br \/>jobNameURL = urllib.quote(jobName)<br \/>else :<br \/>sys.exit(1)<\/p>\n<p>try:<br \/>jenkinsStream = urllib2.urlopen( jenkinsUrl + jobNameURL + &#8220;\/lastBuild\/api\/json&#8221; )<br \/>except urllib2.HTTPError, e:<br \/>print &#8220;URL Error: &#8221; + str(e.code)<br \/>print &#8221; (job name [&#8221; + jobName + &#8220;] probably wrong)&#8221;<br \/>sys.exit(2)<\/p>\n<p>try:<br \/>buildStatusJson = json.load( jenkinsStream )<br \/>except:<br \/>print &#8220;Failed to parse json&#8221;<br \/>sys.exit(3)<\/p>\n<p>if buildStatusJson.has_key( &#8220;result&#8221; ):<br \/>print &#8220;[&#8221; + jobName + &#8220;] build status: &#8221; + buildStatusJson[&#8220;result&#8221;]<br \/>if buildStatusJson[&#8220;result&#8221;] != &#8220;SUCCESS&#8221; :<br \/>exit(4)<br \/>else:<br \/>sys.exit(5)<\/p>\n<p>sys.exit(0)<\/p>\n<p>Reference &#8211;<br \/>&lt;a href=&#8221;http:\/\/serverfault.com\/questions\/309848\/how-can&#8230;49988bb53ee820fe202a&#8221;&gt;serverfault.com\/questions\/309848\/how-can&#8230;49988bb53ee820fe202a&lt;\/a&gt;<br \/>&lt;pre&gt;[\/code]<\/p>\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_37199\"><iframe loading=\"lazy\"  id=\"_ytid_47178\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_37199\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Using JSON &amp; Curl [code]BUILD_STATUS=$(curl &#8211;user USER:TOKEN_VALUE &#8211;silent $BUILD_URLapi\/json | jq -r &#8216;.result&#8217;)echo $BUILD_STATUS[\/code] Using jenkins PluginsPlugins Name &#8211; Conditional Build Step For Implementations, Please check here.https:\/\/stackoverflow.com\/questions\/11125598\/getting-the-build-status-in-post-build-script Using Python &amp;&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[42],"tags":[145],"class_list":["post-2050","post","type-post","status-publish","format-standard","hentry","category-jenkins","tag-jenkins"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/2050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=2050"}],"version-history":[{"count":5,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/2050\/revisions"}],"predecessor-version":[{"id":25696,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/2050\/revisions\/25696"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=2050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=2050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=2050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}