6

我正在尝试在 CircleCI 上构建一个需要访问安全文件的项目。我不能使用环境变量,它必须是文件的形式。就我而言,它专门是一个 Mavensettings.xml文件,但还有其他用例。我能做些什么?

4

1 回答 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 回答