How to pass env vars to a MultibranchPipelineJob created by Jenkins Job DSL?

Viewed 1349

I am creating a MultibranchPipelineJob with Jenkins Job DSL. I want to pass some environment variables to the job, but I can't figure out how to do that from the documentation.

2 Answers

MultibranchPipeline Job no longer support parameters

You can use Folder Properties Plugin to set your Env variables, which can be accessed by all the jobs within that folder. https://plugins.jenkins.io/folder-properties/

However, the MultiBranch pipeline job has a lot of performance issues so we moved away from multibranch pipeline jobs. We wrote a DSL job that would act as a multibranch pipeline job - which will scan through the git branches and create Simple pipeline jobs as needed.

You pass them as parameters like this:

parameters {
    stringParam("MyVariable1", "my-value1")
    stringParam("MyVariable2", "${my-dynamic-value2}")
}

Then consume them in the job using parameters or environment (both work equally) as this:

echo "my vars are ${parameters.MyVariable1} or ${env.MyVariable2}"
Related