如何在CircleCI构建中使用安全文件?

JBC*_*BCP 6 maven-3 maven circleci

我正在尝试在CircleCI上构建一个需要访问安全文件的项目.我不能使用环境变量,它必须是文件的形式.在我的例子中,它特别是一个Maven settings.xml文件,但还有其他用例.我能做什么?

JBC*_*BCP 18

这个问题实际上有很多解决方案:

文件作为环境变量

如果文件的内容很短(例如只是密码),您可以将整个文件存储为环境变量,然后将这样的行添加到circle.yaml构建文件中:

echo $SECURE_FILE > mySecureFile
Run Code Online (Sandbox Code Playgroud)

可变替代

如果文件的内容很大,但只有一小部分文件是安全的,您可以将文件存储在代码存储库中,然后使用sed将固定字符串替换为环境变量,如下所示:

sed -e s/SECURE_PASSWORD/${SECURE_PASSWORD}/g mySecureFile.tmpl > mySecureFile
Run Code Online (Sandbox Code Playgroud)

加密文件

您可以加密配置文件并将其检入源存储库,然后将解密密钥存储为环境变量.在构建过程中解密它.

Maven Settings.xml特例

对于Maven settings.xml文件的特殊情况,您可以在settings.xml中使用环境变量,因此您可以执行以下操作:

  • 将settings.xml存储在conf/settings.xml中
  • 用以下内容替换任何安全文本: ${env.MY_SECURE_TEXT}
  • 设置MY_SECURE_TEXT圆圈CI配置
  • 在circle.yaml中,将"-s conf/settings.xml"添加到Maven构建命令中.