3
ビルド結果をテストするための一連の仮想マシンがあります。すべてのVMはJenkinsスレーブノードとして設定されます。マスターノードは、VMの起動と停止を行うことができます。Jenkinsパイプラインスクリプトのラベルからノード名を取得する方法
のVMは、三(cluster1
、cluster2
)のグループで、及び異なる役割(role1
、role2
、role3
)でタグ付けされています。
私はその引数(StringParameterValue)としてGROUP名を取りパイプラインのスクリプトを記述したいと思いますし、
-
は、各ノード上のグループに属する仮想マシン
- 実行個々のテストを開始し
- (中並列)
- 完了後にVMを停止します。
def VM1 = ??? get name of the node labeled ("GROUP && role1") ???; def VM2 = ??? get name of the node labeled ("GROUP && role2") ???; def VM3 = ??? get name of the node labeled ("GROUP && role3") ???; def VMs = [VM1, VM2, VM3]; node (master) { stage 'Start' def start = [:]; for (vm in VMs) { start["${vm}"] = { build job: 'Start_VM', parameters: [ [$class: 'StringParameterValue', name: 'VMNAME', value: vm]]; } } parallel start; def tests = [:]; for (int i = 0; i < VMs.size; i++) { tests["role${i}"] = { node (VMs[i]) { build job: "Test_role${i}"; } } } parallel tests; Stage 'Stop' def stop = [:]; for (vm in VMs) { stop["${vm}"] = { build job: 'Stop_VM', parameters: [ [$class: 'StringParameterValue', name: 'VMNAME', value: vm]]; } } parallel stop; }
Q:私はグループラベルによって個々のノード名を導き出すことができますどのよう
パイプラインのスクリプトはおおよそのように見えますか?
を? –
Uups - 実際はタイプミスです。 'lgroup'でなければなりません。 –