2017-05-12 12 views
1

開始コミットが与えられたときに、Jenkinsジョブがブランチ上のすべてのコミットを時系列にトラバースするようにしたい。私は枝のすべてのコミットでソナーを実行したい。ソナーはジェンキンスを介してトリガーされます。これを達成するためにJenkinsにオプションがありますか?Jenkinsはすべてのコミットを1つのブランチでビルドする方法を教えてください。

自分のワークスペースでコミットを個別にチェックアウトした後、ローカルマシンからソナーを起動するオプションはありません。

答えて

4

ビルドパラメータとしてビルドするブランチ/コミットハッシュを使用するビルドを作成できます。実行する別のビルドジョブを作成するよりも、git log --pretty=oneline head...whaterver_commit | awk '{print $1}'があり、最初のパラメータ化されたジョブをトリガするためにコミットハッシュが必要です。

編集:ここでは

は動作するはずパイプラインスクリプトの例です:

node('your-jenkins-slave') { 
    checkout scm 
    def result = sh (script: "git log --pretty=oneline | awk '{print \$1}'", returnStdout: true) 
    def hashes = result.split('\n') 
    for (int i = 0; i < hashes.size(); i++) { 
    def commitHash = hashes[i] 
    build job: 'your_job_id', parameters: [[$class: 'StringParameterValue', name: 'BRANCH', value:commitHash]] 
    } 
} 
+0

感謝。しかし、私は最初の仕事を何度も何度も呼び出すことができますか?私は一連のコミットを行い、コミットごとにビルドをトリガする必要があります。 Parametrizedトリガープラグインを使用する予定です。 –

+1

これでうまくいくはずのコードを追加しました。私はPipeline Pluginも使用しました。 – webventil

関連する問題