Escape char in Gitlab Secret Variables

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


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'.