ジェンキンスで複数のジョブを同時に再構築する方法は?


9

Jenkins Rebuild Pluginを使用して、1つのRebuildボタンでパラメーター化されたビルドを実行しています。ただし、(選択した、または同じフォルダーから)パラメーター化された多数のジョブを再実行する必要がある場合でも、効率的ではありません。

最後に使用したパラメータを使用して複数のジョブを同時に再実行するより簡単な方法(最終的には異なるプラグインを使用)はありますか?


2
マルチリビルドを行うプラグインを知りません。しかし、私はおそらく別のアプローチをとり、失敗したビルドがそれ自体を再試行する(一部の構成による)再試行ベースのソリューションを使用することを提案できます。これは、(少なくとも場合によっては)マルチリビルドを冗長にする必要性のようなものになります。
Assaf Lavie 2017年

回答:


8

パイプラインを使用してジョブを結合し、並列またはステップを介して順次実行することができます。
パイプラインスクリプトから呼び出すときに、関連するパラメーターを各ジョブに渡すことができます。
次に、単一のパイプラインジョブを再構築する必要があります。変数を使用して、共通のビルド名でジョブを結び付けることもできます。

build job: 'buildjob1', parameters: [
  [$class: 'StringParameterValue', name: 'BUILD_NAME', value: ${env.JOB_BASE_NAME}-${env.BUILD_NUMBER}"], 
  [$class: 'StringParameterValue', name: 'FIXEDPARAM', value: 'some-string'],
  [$class: 'StringParameterValue', name: 'PARAM1', value: "${PARAM1}"]
]

1

パラメータオブジェクトのリストを作成し、それをビルドステップに渡すこともできます。

def paramsMap = [:]
paramsMap['param1'] = 'value1'
paramsMap['param2'] = 'value2'
def paramsObjects = []
paramsMap.each {
  key, value ->
    paramsObjects.push([$class: 'StringParameterValue', name: key, value: value])
}
build job: jobName, parameters: paramsObjects

paramsObjectsは次のようになります。

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.