我正在尝试在CircleCI上构建一个需要访问安全文件的项目。我不能使用环境变量,它必须是文件的形式。在我的例子中,它特别是Maven settings.xml
文件,但还有其他用例。我该怎么办?
答案 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中使用环境变量,因此您可以执行以下操作:
${env.MY_SECURE_TEXT}
MY_SECURE_TEXT