Hi, i want to create a delcarative parallel pipeline.
Everything works fine if use this method:
The disadvanatge of this solution is, that is unmaintainable if there more machines. So i would like it dynamical.
I ended like this, it works fine, but has one fault. The first batch is excuted on the wrong node. I have 4 maschines:
JenkinsAgentSlave1 - label: build
JenkinsAgentSlave2 - label: agent
JenkinsAgentSlave3 - label: agent
JenkinsAgentSlave4 - label: agent
(Update*: the word s.l.a.v.e is transformed to agent)
pipeline {
agent {label 'build'}
stages {
stage("Agent")
{
steps{
echo "${env.NODE_NAME}"
}
}
stage("Start Tests")
{
steps
{
script{
// def node_list = nodesByLabel label: 'slave', offline: false
def node_list = nodesByLabel label: 'agent', offline: false
// alle Testfaelle zu einer Liste formen
def testcases_list = "${Testcases}".split(",")
for(int i = 0; i< node_list.size(); i++){
echo "${node_list[i]}"
}
echo "testcases_list size: ${testcases_list.size()}"
echo "node_list size: ${node_list.size()}"
def parallel_env = [:]
for(x in node_list){
def mynode = x
parallel_env["node_${mynode}"] ={
node(mynode){
stage("as")
{
// correct node
def node_name = "${env.NODE_NAME}"
echo "NODE_NAME ${env.NODE_NAME}"
echo node_name
script
{
// WRONG NODE
def hostname = bat(script: "@echo %COMPUTERNAME%", returnStdout: true)
echo "hostname ${hostname}"
def editor = bat(script: "start notepad", returnStdout: false)
}
}
}
}
}
parallel parallel_env
}
}
}
}
}
Jenkins setup:
Jenkins: 2.414.3
OS: Windows 10 - 10.0
Java: 17.0.7 - Oracle Corporation (Java HotSpot™ 64-Bit Server VM)
antisamy-markup-formatter:162.v0e6ec0fcfcf6
apache-httpcomponents-client-4-api:4.5.14-208.v438351942757
authentication-tokens:1.53.v1c90fd9191a_b_
blueocean:1.27.5.1
blueocean-bitbucket-pipeline:1.27.5.1
blueocean-commons:1.27.5.1
blueocean-config:1.27.5.1
blueocean-core-js:1.27.5.1
blueocean-dashboard:1.27.5.1
blueocean-display-url:2.4.2
blueocean-events:1.27.5.1
blueocean-git-pipeline:1.27.5.1
blueocean-github-pipeline:1.27.5.1
blueocean-i18n:1.27.5.1
blueocean-jwt:1.27.5.1
blueocean-personalization:1.27.5.1
blueocean-pipeline-api-impl:1.27.5.1
blueocean-pipeline-editor:1.27.5.1
blueocean-pipeline-scm-api:1.27.5.1
blueocean-rest:1.27.5.1
blueocean-rest-impl:1.27.5.1
blueocean-web:1.27.5.1
bootstrap5-api:5.3.2-2
bouncycastle-api:2.29
branch-api:2.1128.v717130d4f816
build-user-vars-plugin:1.9
caffeine-api:3.1.8-133.v17b_1ff2e0599
checks-api:2.0.2
cloudbees-bitbucket-branch-source:848.v42c6a_317eda_e
cloudbees-folder:6.858.v898218f3609d
command-launcher:107.v773860566e2e
commons-lang3-api:3.13.0-62.v7d18e55f51e2
commons-text-api:1.10.0-78.v3e7b_ea_d5a_fe1
credentials:1293.vff276f713473
credentials-binding:642.v737c34dea_6c2
display-url-api:2.200.vb_9327d658781
durable-task:523.va_a_22cf15d5e0
echarts-api:5.4.0-7
favorite:2.4.3
font-awesome-api:6.4.2-1
git:5.2.0
git-client:4.5.0
github:1.37.3.1
github-api:1.316-451.v15738eef3414
github-branch-source:1741.va_3028eb_9fd21
gitlab-plugin:1.7.16
handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953
hidden-parameter:202.vb_964799875d7
htmlpublisher:1.32
instance-identity:173.va_37c494ec4e5
ionicons-api:56.v1b_1c8c49374e
jackson2-api:2.15.3-363.v82c51b_de9f60
jakarta-activation-api:2.0.1-3
jakarta-mail-api:2.0.1-3
javax-activation-api:1.2.0-6
javax-mail-api:1.6.2-9
jaxb:2.3.9-1
jdk-tool:73.vddf737284550
jenkins-design-language:1.27.5.1
jersey2-api:2.40-1
jjwt-api:0.11.5-77.v646c772fddb_0
jquery:1.12.4-1
jquery3-api:3.7.1-1
junit:1240.vf9529b_881428
list-git-branches-parameter:0.0.13
mailer:463.vedf8358e006b_
matrix-project:818.v7eb_e657db_924
mina-sshd-api-common:2.11.0-86.v836f585d47fa_
mina-sshd-api-core:2.11.0-86.v836f585d47fa_
node-iterator-api:55.v3b_77d4032326
okhttp-api:4.11.0-157.v6852a_a_fa_ec11
pipeline-build-step:505.v5f0844d8d126
pipeline-graph-analysis:202.va_d268e64deb_3
pipeline-groovy-lib:689.veec561a_dee13
pipeline-input-step:477.v339683a_8d55e
pipeline-milestone-step:111.v449306f708b_7
pipeline-model-api:2.2144.v077a_d1928a_40
pipeline-model-definition:2.2144.v077a_d1928a_40
pipeline-model-extensions:2.2144.v077a_d1928a_40
pipeline-rest-api:2.33
pipeline-stage-step:305.ve96d0205c1c6
pipeline-stage-tags-metadata:2.2144.v077a_d1928a_40
pipeline-stage-view:2.33
pipeline-utility-steps:2.16.0
plain-credentials:143.v1b_df8b_d3b_e48
plugin-util-api:3.6.0
pubsub-light:1.18
scm-api:676.v886669a_199a_a_
script-security:1275.v23895f409fb_d
snakeyaml-api:2.2-111.vc6598e30cc65
sse-gateway:1.26
ssh-credentials:308.ve4497b_ccd8f4
ssh-slaves:2.916.vd17b_43357ce4
sshd:3.312.v1c601b_c83b_0e
structs:325.vcb_307d2a_2782
terraform:1.0.10
test-results-analyzer:0.4.0
token-macro:384.vf35b_f26814ec
trilead-api:2.84.v72119de229b_7
uno-choice:2.8.1
variant:60.v7290fc0eb_b_cd
vsphere-cloud:2.27
workflow-aggregator:596.v8c21c963d92d
workflow-api:1283.v99c10937efcb_
workflow-basic-steps:1042.ve7b_140c4a_e0c
workflow-cps:3806.va_3a_6988277b_2
workflow-durable-task-step:1289.v4d3e7b_01546b_
workflow-job:1326.ve643e00e9220
workflow-multibranch:756.v891d88f2cd46
workflow-scm-step:415.v434365564324
workflow-step-api:639.v6eca_cd8c04a_a_
workflow-support:865.v43e78cc44e0d