Skip to content

Instantly share code, notes, and snippets.

@ravibhure
Forked from richid/Jenkinsfile
Created June 18, 2020 14:42
Show Gist options
  • Save ravibhure/0275445c10f41ec8efae0261116a173d to your computer and use it in GitHub Desktop.
Save ravibhure/0275445c10f41ec8efae0261116a173d to your computer and use it in GitHub Desktop.
Jenksfile declarative pipeline with parallel dynamic stages
def applications = env.APPLICATIONS.split(",").findAll { it }.collect { it.trim() }
def environment = env.ENVIRONMENT
def version = env.VERSION
def jobs = [:]
if (applications.size() < 1) {
error("ERROR: APPLICATIONS must be a comma-delimited list of applications to build")
}
for (int i = 0; i < applications.size(); i++) {
def app = applications[i]
jobs["jobs-${app}"] = {
node {
stage("Build ${app}") {
build job: 'Application-Builder', parameters: [
string(name: 'APPLICATION', value: app),
string(name: 'ENVIRONMENT', value: environment),
string(name: 'VERSION', value: version)
]
}
}
}
}
pipeline {
agent none
stages {
stage('Build apps(s)') {
steps {
script {
parallel jobs
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment