2017-01-26 18 views
3

私はプロジェクトで継続的な統合フローを実装するためにパイプラインスクリプトを作成しています。このプロセスは、ユーザーが命名規則test_id1test_id2などに従った特定のブランチで作業することです。これらがリモートリポジトリにプッシュされると、Jenkinsはキックインして、test *でブランチをチェックアウトし、残りのビルドプロセスを行います。私の最初の本能に基づいてJenkins pipeline - git branch

は、次のように私は、パイプラインのスクリプトを書いた: 舞台「ビルド」

node { 
    git url: '[email protected]:testing', branch: test* 
    sh "pwd" 
    sh "cat simple.csh" 
    sh "echo $PATH" 
    sh "csh simple.csh" 
    echo("end of pipeline") 
} 

はところで、私は「テスト*」、「テスト*」を試してみました。

ジェンキンスは、次のエラーでアウトベイル:だから

Caused by: hudson.plugins.git.GitException: Command "git checkout -b test* 264dc398372cba41c026568bd764d2656ebfc511" returned status code 128: 

、質問は、私はこれで正しい方向に向かっていますかどうかです。 私も上記のエラーを見て、明らかに、ワイルドカードを使ったgit checkoutは目的を果たさないものです。だから、次のようなアプローチの作品は希望: 2いつものように

1)チェックアウトgitのマスター)名試験による任意の新しい枝が* 3が存在するかどうかを確認してください)には、ブランチをチェックアウトしない場合、その後、残りの作成を行います

これにはいくつかの指示が必要です。

+2

パイプラインの 'checkout'ステップを試して、ブランチ名として': 'を使用してください(ここでコロンはジェンキンズが正規表現を使用していることを知るために重要です)。あなたのJenkinsインスタンスのスニペットジェネレータをチェックアウトしてください。これはステップの構文に役立ちます – fishi

答えて

1

正規表現でSCMチェックアウトプラグインを使用することができます。私はフィーチャーブランチをfeature/US1234というフォーマットでポーリングするのに使ってきました。必要に応じて変更します。

checkout([$class: 'GitSCM', 
branches: [[name: ':^(?i)origin/feature/[a-z|A-Z]{2}[0-9].*']], 
doGenerateSubmoduleConfigurations: false, 
extensions: [[$class: 'WipeWorkspace'], 
[$class: 'LocalBranch', localBranch: '**']], submoduleCfg: [], 
userRemoteConfigs: [[credentialsId: 'YOURID', url: 'GITURL']]]) 

さらに多くのオプションでパイプラインシンタックスジェネレータを使用します。