Jenkins build pipeline providing env vars for different environments

396 Views Asked by At

I have a public git repository that has a Jenkinsfile. The Jenkinsfile needs to be able to build three environments: dev, staging and production.

There's a set of variables that need to be set for each environment - some of these are sensitive and I wouldn't want to put them in the public repo. Some examples:

S3_BUCKET_URL  
API_ENDPOINT  
API_USERNAME
API_PASSWORD 
etc.

In an ideal world I'd like a build parameter, e.g. BUILD_ENV that has the options: 'dev', 'staging' and 'prod' and some logic that sets the relevant vars dependent on env selection.

I've looked at the credentials pluglins, but they don't handle multiple envs and the UI seems awkward. Plus the env vars are accessible centrally, whereas we need them to be directly tied to the build job.

I've also looked at the env inject plugin, which works for setting properties, but there doesn't appear to be a way to make it vary those properties based on a chosen build parameter.

Is there a way to achieve this with the build pipeline? Surely there must be a plugin that already provides this capability?

0

There are 0 best solutions below