我正在尝试在 CircleCI 上构建一个需要访问安全文件的项目。我不能使用环境变量,它必须是文件的形式。就我而言,它专门是一个 Mavensettings.xml
文件,但还有其他用例。我能做些什么?
问问题
2352 次
1 回答
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}
MY_SECURE_TEXT
在circle CI配置中设置- 在 circle.yaml 中,将“-s conf/settings.xml”添加到您的 Maven 构建命令中。
于 2014-10-13T21:57:02.337 回答