1

我在 Jenkins 中配置了一个组织项目,它扫描 jenkinsfile 的存储库。存储库之一(https://github.com/VirtoCommerce/vc-module-jenkinssample)定义了以下 Jenkinsfile:

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”的更改时,“分支索引”仍然会强制构建作业。我怎样才能防止这种情况?

顺便说一句,上面的脚本在单独的管道作业中运行良好。

4

1 回答 1

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()
}
}

希望这可以帮助某人。

于 2016-06-24T00:54:10.410 回答