1

jenkinsfileのリポジトリをスキャンするJenkinsで構成された組織プロジェクトがあります。リポジトリの 1 つ ( 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 に変更を加えてもビルドはトリガーされません。ただし、「Branch Indexing」は、「CommonAssemblyInfo.cs」への変更をコミットすると、ジョブを強制的にビルドします。どうすればこれを防ぐことができますか?

ところで、上記のスクリプトは別のパイプライン ジョブで正常に動作します。

4

1 に答える 1

1

現在、組織のパッケージを使用するときにビルドを無視する方法はありません。ただし、2 番目のビルド (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 に答える