जवाबों:
आप कुछ इस तरह की कोशिश कर सकते हैं:
node('my_kubernetes_pod') {
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;
}
इसके अतिरिक्त, आप "आखिरी सफलता के बाद से परिवर्तन" की कोशिश कर सकते हैं: https://wiki.jenkins.io/display/JENKINS/Changes+Since+Last+Success+Plugin
लेकिन यह पाइपलाइन के साथ मिलकर काम नहीं करेगा, यह एक अलग दृष्टिकोण है।
जैसा कि मैंने पाया यह आपकी मदद कर सकता है। इसके साथ आप जेनकींस के साथ किसी भी प्रोजेक्ट बिल्ड की नवीनतम सफल बिल्ड परिवर्तन लॉग फ़ाइल प्राप्त कर सकते हैं।
$DirectoryA = "D:\Jenkins\jobs\projectName\builds" ####Jenkind directory
$firstfolder = Get-ChildItem -Path $DirectoryA | Where-Object {$_.PSIsContainer} | Sort-Object LastWriteTime -Descending | Select-Object -First 1
$DirectoryB = $DirectoryA + "\" + $firstfolder
$sVnLoGfIle = $DirectoryB + "\" + "changelog.xml"
write-host $sVnLoGfIle