Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Escape char in Gitlab Secret Variables

I have a secret var :

enter image description here

But when I do - echo %MySecretVar%, runner displays foo only

How can i escape special chars like ! in Gitlab Secret Vars ?

like image 516
GGO Avatar asked Feb 19 '18 16:02

GGO


2 Answers

I had the same problems with Gitlab, job running on windows, but I assume it will reproduce on Linux as well, because it seems Gitlab parsing issue or relay weird escaping.

So I have set environment variable

APPPOOL_PWD: 'blabla!foo$bar'

and output of echo %APPPOOL_PWD% or echo $APPPOOL_PWD was 'blabla'

The Gitlab seems to be was eating out the exclamation mark sign ! and dollar sign $. To avoid it as proposed in comment for exclamation mark I have used ^^ and for dollar sign I have used $$ as proposed in the Gitlab variables documentation.

So following variable works well:

APPPOOL_PWD: 'blabla^^!foo$$bar'

and output of the echo command in this case would be 'blabla!foo$bar'.

like image 103
Regfor Avatar answered Oct 03 '22 19:10

Regfor


I was able to use a value with special characters this way:

  1. Define Gitlab CI variable FOO with special characters in the value, e.g. ?!asdf&%fghjkl
  2. In .gitlab-ci.yml define:
variables:
  bar: '"%FOO%"'
script:
  - echo %bar%

This way the variable will stay exactly the way it is typed in your CI variable field.

I'm using Windows batch shell. If you use another shell for script running, the syntax is a little different from %bar%. Check out the syntax here: Gitlab CI reference

like image 30
Koja Avatar answered Oct 03 '22 19:10

Koja