आप जेनकींस Remote Access API का उपयोग अपनी पूरी परिवर्तन सेट सहित वर्तमान बिल्ड की एक मशीन पठनीय विवरण, प्राप्त करने के लिए कर सकते हैं। यहां सूक्ष्मता यह है कि यदि आपके पास 'शांत अवधि' कॉन्फ़िगर किया गया है, तो जेनकिंस एक ही संग्रह में एक ही भंडार में कई काम करता है, इसलिए एक संशोधन संख्या पर भरोसा करना थोड़ा सा बेवकूफ़ है।
मुझे अपने सबवर्जन पोस्ट-प्रतिबद्ध हुक अपेक्षाकृत सरल और हाथों को सीआई सर्वर पर बंद रखना पसंद है। ऐसा करने के लिए, मैं wget का उपयोग निर्माण, कुछ इस तरह ...
/usr/bin/wget --output-document "-" --timeout=2 \
https://ci.example.com/jenkins/job/JOBID/build?token=MYTOKEN
काम तो जेनकींस पक्ष पर कॉन्फ़िगर किया गया है Python स्क्रिप्ट है जो BUILD_URL
वातावरण चर लाभ उठाता है और के लिए URL निर्माण पर अमल करने को गति प्रदान करने उस से एपीआई। यूआरएल इस तरह दिख रहा है:
https://ci.example.com/jenkins/job/JOBID/BUILDID/api/json/
यहां कुछ नमूना पायथन कोड है जो शैल स्क्रिप्ट के अंदर चलाया जा सकता है। मैंने चीजों को पठनीय रखने के लिए किसी भी त्रुटि हैंडलिंग या HTTP प्रमाणीकरण सामग्री को छोड़ दिया है।
import os
import json
import urllib2
# Make the URL
build_url = os.environ['BUILD_URL']
api = build_url + 'api/json/'
# Call the Jenkins server and figured out what changed
f = urllib2.urlopen(api)
build = json.loads(f.read())
change_set = build['changeSet']
items = change_set['items']
touched = []
for item in items:
touched += item['affectedPaths']
स्रोत
2012-04-03 18:34:44
"आप निर्माण के व्यवहार को बदलना चाहते हैं, इस पर निर्भर करता है कि कौन सी फाइलें संशोधित की गईं" उदाहरण के लिए, मैवेन इंकमेंटल बिल्ड (प्लगइन) के साथ। –