在Gitlab秘密变量中逃脱char

时间:2018-02-19 16:51:17

标签: gitlab gitlab-ci gitlab-ci-runner

我有一个秘密的var:

enter image description here

但当我- echo %MySecretVar%时,选手仅显示foo

如何在Gitlab Secret Vars中逃避!之类的特殊字符?

2 个答案:

答案 0 :(得分:4)

我遇到了与Gitlab相同的问题,在Windows上运行的作业,但我认为它也会在Linux上重现,因为它似乎解析了Gitlab问题或者转发奇怪的转义。

所以我设置了环境变量

APPPOOL_PWD: 'blabla!foo$bar'

echo %APPPOOL_PWD%echo $APPPOOL_PWD的输出为'blabla'

Gitlab好像在吃掉感叹号!和美元符号$。为了避免使用感叹号评论中的建议,我使用了^^,对于美元符号,我使用了Gitlab variables documentation中建议的$$

因此,跟随变量效果很好:

APPPOOL_PWD: 'blabla^^!foo$$bar

在这种情况下,

和echo命令的输出将是'blabla!foo $ bar'。

答案 1 :(得分:0)

我可以通过以下方式使用带有特殊字符的值:

  1. 使用值中的特殊字符定义Gitlab CI变量FOO,例如?!foo&%bar
  2. .gitlab-ci.yml中定义:
variables:
  foo2: '"%FOO%"'
script:
  - echo %foo2%

通过这种方式,变量将保持与在CI变量字段中键入的方式完全相同。

我正在使用Windows批处理Shell。如果您使用另一个Shell运行脚本,则语法与%foo2%略有不同。在此处查看语法:Gitlab CI reference