2014-10-13 4 views
6

Ich versuche ein Projekt auf CircleCI zu erstellen, das Zugriff auf eine sichere Datei benötigt. Ich kann keine Umgebungsvariable verwenden, sie muss in Form einer Datei vorliegen. In meinem Fall ist es speziell eine Maven settings.xml Datei, aber es gibt andere Anwendungsfälle. Was kann ich tun?Wie kann ich eine sichere Datei in einem CircleCI-Build verwenden?

Antwort

18

Es gibt tatsächlich eine ganze Reihe von Lösungen für dieses Problem:

Datei als Umgebungsvariable

Wenn der Inhalt der Datei kurz ist (nur ein Passwort zum Beispiel), können Sie die gesamten speichern Datei als Umgebungsvariable, und dann eine Zeile wie diese auf Ihre circle.yaml Build-Datei hinzufügen:

echo $SECURE_FILE > mySecureFile 

Variable Substitution

Wenn der Inhalt der Datei groß ist, aber nur ein kleiner Teil der Datei sicher ist, können Sie die Datei in Ihrem Code-Repository speichern und dann mithilfe von sed eine feste Zeichenfolge durch eine Umgebungsvariable ersetzen :

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

verschlüsseln der Datei

Sie können Ihre Konfigurationsdatei verschlüsseln und sie in die Quell-Repository überprüfen, dann speichern Sie den Entschlüsselungsschlüssel als Umgebungsvariable. Entschlüsseln Sie es während des Build-Prozesses.

Maven Settings.xml Sonderfall

Für den speziellen Fall von Maven settings.xml Dateien, Sie Umgebungsvariablen in Ihrer settings.xml verwenden können, so dass man etwas tun kann:

  • Speichern Sie Ihre settings.xml in conf/settings.xml
  • Ersetzen Sie das sichere Text mit etwas wie folgt aus: ${env.MY_SECURE_TEXT}
  • Set MY_SECURE_TEXT in der c icle CI-Konfiguration
  • Fügen Sie in circle.yaml '-s conf/settings.xml' zu Ihren Maven-Buildbefehlen hinzu.
Verwandte Themen