pipeline { agent { label 'jjb' } options { timestamps() ansiColor('xterm') } stages { stage('Run Jobs In Parallel') { steps { script { def fanout = [:] fanout['selenium'] = { build job: 'qa-selenium-tests', wait: true, propagate: true, parameters: [ string(name: 'BROWSER', value: params.BROWSER), string(name: 'BASE_URL', value: params.BASE_URL), string(name: 'EXECUTION_MODE', value: params.EXECUTION_MODE), string(name: 'SELENOID_URL', value: params.SELENOID_URL), string(name: 'HEADLESS', value: params.HEADLESS) ] } fanout['mobile'] = { build job: 'qa-mobile-appium-tests', wait: true, propagate: true, parameters: [ string(name: 'APP_URL', value: params.APP_URL), string(name: 'DB_URL', value: params.DB_URL), string(name: 'DB_USER', value: params.DB_USER), string(name: 'DB_PASSWORD', value: params.DB_PASSWORD), string(name: 'WISHLISTS_USERNAME', value: params.WISHLISTS_USERNAME), string(name: 'WISHLISTS_PASSWORD', value: params.WISHLISTS_PASSWORD), string(name: 'GIFTS_USERNAME', value: params.GIFTS_USERNAME), string(name: 'GIFTS_PASSWORD', value: params.GIFTS_PASSWORD), string(name: 'RESERVATION_USERNAME', value: params.RESERVATION_USERNAME), string(name: 'RESERVATION_PASSWORD', value: params.RESERVATION_PASSWORD), string(name: 'RESERVATION_OWNER', value: params.RESERVATION_OWNER) ] } fanout['api'] = { build job: 'qa-api-citrus-tests', wait: true, propagate: true } parallel fanout } } } } }