2017-05-25 2 views
1

私は、特定のブランチの特定のパラメータで10分ごとに開始するようにしています。Jenkinsfile - 異なるパラメータで異なるブランチをトリガーする

私は10分ごとにパラメータを設定し、ジョブを起動するには、このコードを使用します。

properties([ 
    parameters([ 
     string(defaultValue: 'regularPipeline', description: 'A parameter to run the health monitoring', name: 'Health') 
    ]), 
    pipelineTriggers([ 
    [ 
     $class: 'hudson.triggers.TimerTrigger', 
     spec: "H/10 * * * *" 
    ] 
    ]) 
]) 

にはどうすればTimerTriggerはPARAMを受信することができます。そして、私はこの仕事をどのように特定のbrachでのみ動かすことができますか?

+0

最後の部分は意味がないと思います。 'properties'はジョブIIRCの_next_実行にのみ影響します - 実際にはこの' Jenkinsfile'を複数のブランチで使用し、ジョブが10分ごとにこのブランチに対してトリガーされることが必要な場合を除きます。 – StephenKing

+0

もう少し明確になるようにしてください。なぜこれらの条件が必要なのでしょうか。ジョブの起動時に、パラメータのデフォルト値を使用する必要があります( 'params 'を介してジョブ内でアクセス可能)。 – StephenKing

+0

@StephenKing私はこのJenkinsfileを複数のブランチで使用し、特定のブランチで特定のパラメータを使用して10分ごとにビルドをトリガーしたいとします。私は質問を更新します。ありがとう! –

答えて

0

次の擬似コードは、(おそらく、構文エラーが含まれています)役立つはず:

def triggers = [] 
if (env.BRANCH_NAME == 'master') { 
    triggers << [ 
    $class: 'hudson.triggers.TimerTrigger', 
    spec: "H/10 * * * *" 
    ] 
} 
properties([ 
    parameters([ 
    string(defaultValue: 'regularPipeline', description: 'A parameter to run the health monitoring', name: 'Health') 
    ]), 
    pipelineTriggers(triggers) 
]) 

非マスターブランチの場合、あなたは何のトリガを設定しません。マスターブランチについては、上記で定義したTimerTriggerを適用します。

+0

もちろん、_master_ブランチの別のデフォルトを設定してください。 'defaultValue'をトリガーと同じように変数に抽出します。 – StephenKing

+0

@StephanKingこれは動作します。私はまた、デフォルトのパラメータではない「健康」というパラメータでタイムジョブを起動する必要があります。これは可能ですか? –

+0

や、 'Health'というパラメータがあります。 – StephenKing

関連する問題