I'm using GitLab CI/CD, and I store the secrets variables of the process in custom CI/CD variables, as documented here.
It started small, and with only a few variables, using the UI to define the variables is ok. But now, my project have gone bigger, and I end with dozens of variables, multiplied by a fair number of environments. At this point, it becomes tedious to manage them in the UI:
...and so on.
What I would like to do, which in my opinion is much more manageable, is to put all variables for an environement in a single file:
API_TOKEN_VALUE=xxxx
APP_EMAIL_SENDER=xxx
AWS_ACCESS_KEY_ID=xxx
AWS_ACCESS_KEY=xxx
...
And then store this single file as a unique CI/CD variable VAR_FILE
, of type "File":
My question is, if I do this, how can I access those variables in gitlab-ci.yml
and make them available to the jobs?
If you have xargs
and cat
available in your build image you could load them via
before_script:
- export $(grep -v '^#' $VAR_FILE | xargs)
based on https://stackoverflow.com/a/20909045/3708208 (generally within this question you will find a lot of information).
Those will than be available by the name you defined in your CI Variables like API_TOKEN_VALUE
or APP_EMAIL_SENDER
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With