Это довольно распространенная проблема с установкой переменных env в CI!Я сталкивался с этим много раз и с CircleCI.Как правило, с обратными слешами я добился большого успеха, но, думаю, вы уже пробовали это.
Я нашел ветку, в которой обсуждается, как мне кажется, глубоко связанная проблема: https://gitlab.com/gitlab-org/gitlab-ce/issues/27436
Ключевым выводом здесь является то, что по крайней мере в той версии продукта GitLab они еще не нашли хорошего ответа.Я решил начать некоторые эксперименты:
https://gitlab.com/mattbornski/gitlab-ci-exploration
Я установил целую кучу переменных среды в разных форматах, чтобы увидеть, что привело к знаку доллара.
$ python3 audit_environment.py
DOLLA_DOUBLE_MIDSTRING = 1$234
DOLLA_QUAD_MIDSTRING = 1$$234
DOLLA_SINGLE_MIDSTRING_BACKSLASHED = 1\34
DOLLA_DOUBLE_MIDSTRING_BACKSLASHED = 1\\34
DOLLA_DOUBLE_MIDSTRING_LEADING_BACKSLASHED = 1\$234
DOLLA_QUAD_ENDSTRING = 1234$$
DOLLA_SINGLE_MIDSTRING_BACKSLASHED_DOUBLE_QUOTED = "1\34"
DOLLA_SINGLE_MIDSTRING_DOUBLE_QUOTED = "134"
DOLLA_SINGLE_MIDSTRING_BACKSLASHED_SINGLE_QUOTED = '1\34'
DOLLA_SINGLE_MIDSTRING = 134
Job succeeded
Итак, вынос здесь:
- Двойные знаки доллара приводят к появлению единственного знака доллара в переменной среды, доступной для вашего кода в GitLab CI.Это может быть повторено.
- Цитирование проходит, но не влияет на расширение / исключение знака доллара
- Обратная косая черта проходит, но не влияет на расширение / исключение знака доллара
Таким образом, ваши параметры выглядят так:
- Поместите четыре знака доллара в установленную вами переменную, чтобы получить два в среде, в которой вы запускаете
- Восстановитьваши ключи, чтобы в них не было проблемных символов (очень реальный вариант, который я определенно использовал много раз, чтобы избежать этой кроличьей норы)
Для дальнейшего изучения, вот кучаБолее интересные варианты, чтобы попробовать: https://unix.stackexchange.com/a/309791