Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How do I approach environment variables in continuous integration via pipelines?

Monin Digital
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
May 1, 2018

Platform.sh was my first introduction to CI. I love that per branch I can assign environment variables so that with each push the branch deployment responds to its respective environment values.

I am now moving away from Platform.sh and trying to set up my own CI. Of course, I do not want every branch to be deployed using production variables and at the same time, I do not want to create variables named {BRANCH}_SSH_USER. I'd much prefer to have one variable called SSH_USER and have each branches value be different so that my deployment script does not have to be hardcoded to MASTER_SSH_USER or STAGING_SSH_USER.

Am I approaching this the wrong way? If so, how should I be?

1 comment

Jose Elizondo May 2, 2018

Hi Tyler I faced a similar situation and ended up doing some workaround, see if it works for you. I created a json environment variable named SSH_USER with value: 

{ "SSH":{"development": { "user": "devuservalue"}, "staging": {"user": "staginguservalue"}}}

This value was set with Secured attribute set; then I user jq to read the value according to the current branch.

sshuser=$(echo $SSH_USER | jq -r ".SSH.${BITBUCKET_BRANCH}.user")

and that did the trick for me, I have a single env variable for any branch, and can be read in a "contextual" manner with the current branch value.

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events