有没有办法阻止对某些文件类型的更改使成功构建无效?
Is there a way to stop changes to certain file types invalidating a successful build?
例如,我希望在更改 .md
文件时不必重新运行 构建。我的文档更改不会破坏构建。
这是解决方案。它可能需要安全更改(对于 getPreviousBuild
脚本)。目前还没有完全测试,如果有变化我会更新。
这将检查提交是否包含任何不是 .md
文件的文件,以及 运行 构建或如果最后一次构建成功则通过构建。
stage('Check for doc only commit') {
environment {
LAST_BUILD = currentBuild.rawBuild.getPreviousBuild()
}
steps {
script {
if (LAST_BUILD && LAST_BUILD.getResult().toString() == "SUCCESS") {
echo "the previous build ${LAST_BUILD.getId()} passed, checking for a docs-only commit"
NON_DOC_COUNT = sh(
script: 'git show --pretty="format:" --name-only | grep -v -e \'.md\' | wc -l',
returnStdout: true
).trim()
if (NON_DOC_COUNT.toInteger() == 0) {
echo "Found no non-document files in the last commit and previous build was a pass, returning success result"
currentBuild.result = 'SUCCESS'
return
}
}
}
}
}
例如,我希望在更改 .md
文件时不必重新运行 构建。我的文档更改不会破坏构建。
这是解决方案。它可能需要安全更改(对于 getPreviousBuild
脚本)。目前还没有完全测试,如果有变化我会更新。
这将检查提交是否包含任何不是 .md
文件的文件,以及 运行 构建或如果最后一次构建成功则通过构建。
stage('Check for doc only commit') {
environment {
LAST_BUILD = currentBuild.rawBuild.getPreviousBuild()
}
steps {
script {
if (LAST_BUILD && LAST_BUILD.getResult().toString() == "SUCCESS") {
echo "the previous build ${LAST_BUILD.getId()} passed, checking for a docs-only commit"
NON_DOC_COUNT = sh(
script: 'git show --pretty="format:" --name-only | grep -v -e \'.md\' | wc -l',
returnStdout: true
).trim()
if (NON_DOC_COUNT.toInteger() == 0) {
echo "Found no non-document files in the last commit and previous build was a pass, returning success result"
currentBuild.result = 'SUCCESS'
return
}
}
}
}
}