我在Jenkins中配置了一个组织项目,它扫描存储库中的jenkinsfile。其中一个存储库(https://github.com/VirtoCommerce/vc-module-jenkinssample)定义了以下Jenkins文件:
node
{
stage 'Checkout'
checkout([
$class: 'GitSCM',
branches: [[name: '*/master']],
extensions: [[
$class: 'PathRestriction',
excludedRegions: 'CommonAssemblyInfo\\.cs',
includedRegions: ''
]],
userRemoteConfigs: [[
url: 'git@github.com:VirtoCommerce/vc-module-jenkinssample.git']]])
}
正如您可能看到我定义了一个排除区域,因此对CommonAssemblyInfo.cs所做的更改不会触发任何构建。但是,当我提交对“CommonAssemblyInfo.cs”的更改时,“分支索引”仍会强制构建作业。我该如何防止这种情况?
顺便说一句,上面的脚本在单独的管道作业中运行良好。
答案 0 :(得分:1)
目前,在使用组织包时无法忽略构建。但是我能够捕获第二个构建的注释(从第一个构建提交之后)并且不再提交,因此阻止了无限循环。为此,我阅读了最后一条评论,并确保它不是我所期望的:
bat "\"${tool 'Git'}\" log -1 --pretty=%%B > LAST_COMMIT_MESSAGE"
git_last_commit=readFile('LAST_COMMIT_MESSAGE')
if (env.BRANCH_NAME == 'master' && git_last_commit.contains('[publish]'))
{
stage 'Publishing'
processManifests()
}
}
希望这有助于某人。