私が持っています .travis.yml
いくつかの安全な(暗号化された)環境変数。次に、これらの変数を別のプロジェクトで使用するために暗号化を解除する必要があります。
これを行う簡単な方法はありますか(コミットをトリガーしてコンソール出力に出力する以外)。
解読できないと思います。公開鍵はデータの暗号化に使用され、travisが提供しない秘密鍵でのみ復号化できます。
私が理解していることからローカルで復号化することはできませんが、キー/値を回復することはできます。本来、ビルドプロセス中に使用するには、それらを復号化する必要があります。
***********@to2.tmate.io
env
を実行します。これはすべての環境変数を出力するので、安全な環境変数を少し掘る必要がありますが、それらはそこにあります。
ここでのダニエルの回答 はおそらく機能しますが、 Travis CIのデバッグモードはデフォルトでパブリックリポジトリに対して無効になっています に依存しています。これは、セキュリティ上の懸念があるためです。
実際には別の方法があります。 このブログ投稿「RECOVER LOST TRAVISCI VARIABLES – TWO WAYS」 に触発され、簡略化されています。
最初にいくつかの説明:
echo $SECRET
はコンソールログからそれを明らかにしません。 (とにかく)それは決して悪いことではありません。なぜなら、とにかく世界中で利用できるコンソールログに、回復した秘密を表示したくないからです。解決策は、インストールする必要があるコマンドラインツールccrypt
を使用して、別のKNOWN_SECRETで暗号化することです。base64
は、Travis CIのビルドマシン、およびローカルのgit bash(Windowsでgitを使用している場合)またはシェル(Linuxを使用している場合)ですでに利用できるため、便利です。TL; DR:1-2-3と同じくらい簡単です!
.travis.yml
を追加または変更して、次のコンテンツを含めます。Sudo: required
install:
- Sudo apt-get install -y ccrypt
- echo $UNKNOWN_SECRET > info.txt
- ccencrypt info.txt -K $KNOWN_SECRET
- cat info.txt.cpt | base64
上記の変更を試験的なブランチにコミットし、Travis CIの実行をトリガーします。コンソールログをブラウザして、その出力行を見つけます。たとえば、A1B2C3D4...
です。
ローカルマシンで、次のコマンドを実行します。
echo `A1B2C3D4...` | base64 -d > info.txt.cpt
Sudo apt-get install -y ccrypt # If you haven't already
ccrypt –d info.txt.cpt
# When Prompt, type in the KNOWN_SECRET, and then you will have info.txt in plain text