किसी के पास जेनकींस पाइपलाइन स्क्रिप्ट है जो पिछले परिवर्तनों को एक चर में सफल बनाने के बाद से सभी बदलावों को भर सकती है? मैं गिट और मल्टीब्रैंच पाइपलाइन नौकरी का उपयोग कर रहा हूं।जेनकींस पाइपलाइन में आखिरी सफल निर्माण के बाद से परिवर्तन कैसे प्राप्त करें?
उत्तर
वैसे मैं कुछ एक साथ इकट्ठा करने में कामयाब रहा। मैं बहुत यकीन है कि मैं तुम्हें सरणियों बेहतर पुनरावृति सकता हूँ लेकिन यहाँ क्या मैं अब के लिए लिया है:
node('Android') {
passedBuilds = []
lastSuccessfulBuild(passedBuilds, currentBuild);
def changeLog = getChangeLog(passedBuilds)
echo "changeLog ${changeLog}"
}
def lastSuccessfulBuild(passedBuilds, build) {
if ((build != null) && (build.result != 'SUCCESS')) {
passedBuilds.add(build)
lastSuccessfulBuild(passedBuilds, build.getPreviousBuild())
}
}
@NonCPS
def getChangeLog(passedBuilds) {
def log = ""
for (int x = 0; x < passedBuilds.size(); x++) {
def currentBuild = passedBuilds[x];
def changeLogSets = currentBuild.rawBuild.changeSets
for (int i = 0; i < changeLogSets.size(); i++) {
def entries = changeLogSets[i].items
for (int j = 0; j < entries.length; j++) {
def entry = entries[j]
log += "* ${entry.msg} by ${entry.author} \n"
}
}
}
return log;
}
Changes Since Last Success Plugin है जो आपकी मदद कर सकता है।
CaptRespect से जवाब मैं कथात्मक पाइपलाइन में इस्तेमाल के लिए निम्न स्क्रिप्ट के साथ आया था के आधार पर:
def changes = "Changes:\n"
build = currentBuild
while(build != null && build.result != 'SUCCESS') {
changes += "In ${build.id}:\n"
for (changeLog in build.changeSets) {
for(entry in changeLog.items) {
for(file in entry.affectedFiles) {
changes += "* ${file.path}\n"
}
}
}
build = build.previousBuild
}
echo changes
यह stage->when->expression
भागों में बहुत उपयोगी है जब कुछ फ़ाइलों को बदल दिया गया था। मुझे अभी तक उस हिस्से तक नहीं मिला है, हालांकि, मुझे इससे एक साझा लाइब्रेरी बनाना अच्छा लगेगा और इसे जांचने के लिए इसे कुछ ग्लोबिंग पैटर्न पास करना संभव होगा।
संपादित करें: Check the docs बीटीडब्ल्यू, यदि आप थोड़ा गहराई से गुजरना चाहते हैं। आप सभी object.getSomeProperty()
कॉल को केवल entry.someProperty
में कनवर्ट करने में सक्षम होना चाहिए।
नाइस से इसका उपयोग कैसे किया जाए। यदि आप contrubute की देखभाल करते हैं तो कुछ पाइपलाइन उदाहरणों के साथ एक जिथब रेपो है: https://github.com/jenkinsci/pipeline-examples – CaptRespect
यह घोषणात्मक पाइपलाइन शैली में नहीं बल्कि पटकथा पाइपलाइन है! – Lincoln
@Lincoln, yup। आप इसे घोषणात्मक रूप से नहीं कर सकते हैं। आपको इसे करने की आवश्यकता है इसे स्क्रिप्ट ब्लॉक में लपेटें या इसे साझा लाइब्रेरी से उपयोग करें। – andsens
- 1. जेनकींस पाइपलाइन प्लगइन: निर्माण विवरण सेट करें
- 2. सफल बनाने के बाद जेनकींस त्रुटि
- 3. जेनकींस पाइपलाइन
- 4. जेनकींस पाइपलाइन
- 5. क्या मुझे जेनकींस पाइपलाइन में पिछले चरण के निर्माण की स्थिति मिल सकती है?
- 6. जेनकींस पाइपलाइन
- 7. यूआरएल में आखिरी स्लैश के बाद सबकुछ कैसे प्राप्त करें?
- 8. जावा में आखिरी कॉमा के बाद स्ट्रिंग कैसे प्राप्त करें?
- 9. जेनकींस पाइपलाइन
- 10. दूरस्थ रूप से निर्माण को ट्रिगर करने के बाद जेनकींस "कंसोल आउटपुट" कैसे प्राप्त करें?
- 11. जेनकींस पाइपलाइन प्लगइन
- 12. जेनकींस पाइपलाइन
- 13. सफल निर्माण समाप्त होने पर अधिसूचना कैसे प्राप्त करें?
- 14. जेनकींस पाइपलाइन निर्माण विफल होने के बाद स्लैक अधिसूचना कैसे भेजें?
- 15. जेनकींस पाइपलाइन बुलबुला चरण विफल
- 16. जेनकींस में एकाधिक निर्माण कतार
- 17. जेनकींस पाइपलाइन स्क्रिप्ट
- 18. सफल बनाने के बाद रिमोट मशीन पर वर्कस्पेस से शैल स्क्रिप्ट निष्पादित करें (जेनकींस)
- 19. जेनकींस पाइपलाइन - विशेष चरण के लिए पकड़ने का प्रयास करें और बाद में सशर्त चरण
- 20. बिटबकेट रिपोजिटरी से जेनकींस पाइपलाइन को कैसे ट्रिगर करें
- 21. जेनकींस पाइपलाइन चेतावनियां ग्राफ़
- 22. टीमसिटी - सफल निर्माण के बाद गिट टैग बनाएं
- 23. सीधे जेनकींस पाइपलाइन
- 24. एक जेनकींस पाइपलाइन
- 25. जेनकींस: पाइपलाइन चरण
- 26. कैसे एक जेनकींस पाइपलाइन काम के निर्माण परिणाम में हेरफेर करने के?
- 27. जेनकींस स्क्रिप्ट पाइपलाइन या घोषणात्मक पाइपलाइन
- 28. जेनकींस वर्कफ़्लो
- 29. जेनकींस पाइपलाइन निर्देशिका
- 30. जेनकींस EnvInject प्लगइन + पाइपलाइन नौकरी
लेकिन [टैग: जेनकींस-पाइपलाइन] के साथ काम नहीं करता है, मुझे लगता है .. – StephenKing
हाँ मैंने इसे चेक आउट किया लेकिन यह पता नहीं लगा कि जेनकिन्सफाइल – CaptRespect