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

时间:2014-10-13 21:57:02

标签: maven maven-3 circleci

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

1 个答案:

答案 0 :(得分:18)

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

将文件作为环境变量

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

echo $SECURE_FILE > mySecureFile

可变替换

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

sed -e s/SECURE_PASSWORD/${SECURE_PASSWORD}/g mySecureFile.tmpl > mySecureFile

加密文件

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

Maven Settings.xml特例

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

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