I was very excited to know about the ‘parallel’ feature in Jenkins Pipeline, but, there are many gotchas while makingĀ use of the pipeline feature (many of which are documented here: Jenkins Pipeline Example). After trying and reading a few different solutions, following worked for me (notice in screenshot that the browser jobs run in parallel !)
pipeline { agent any stages { stage('Build') { steps { echo 'hello' } } stage('Test') { steps { script { def jobs = [:] def browsers = ["Chrome", "Firefox"] for (int i = 0; i < browsers.size(); i++) { def browser = browsers.get(i) def jobName = "printing $browser" jobs[jobName] = doJob(browser) } parallel jobs } } } stage('Deploy') { steps { echo 'deploying' } } } } def doJob(browser) { return { node { echo "testing in $browser" } } }