2017-07-19 4 views
2

Travisにファイルを暗号化するワークフローがあることがわかりました。hereTravis-CIによって構築されたファイルにGPG署名する方法

私の使用例は少しシンプルですが、私はTravis-CIで構築されたファイルの署名を生成したいだけです。 セイ:この場合hello-0.0.1-a.bin

hello-0.0.1-a.bin.asc 
hello-0.0.1-a.bin 
pubkey.gpg 
<or> hello-0.0.1-a.pub 

はトラヴィスのビルドによって作成され、リリースとしてのGithubにプッシュされます。 同様に、署名はリリースとして(つまり同じタグの下で)Githubにプッシュされなければなりません。

プライベート/公開キーペアがそのビルドに固有のものである場合、私は気にしません(つまり、ディール・ブレーカーではありません)。 しかし、プライベート/パブリックキーペアがビルド間で共有されるのが理想的です。

ヒントや呪文を理解してヒント。

答えて

1

基本的にはいくつかのステップがあります。

  1. 輸出あなたのGPGキーリングgpg --export > all.gpg
  2. 使用encrypt-fileからtravisルビー宝石GPGキーリング(EX all.gpg
  3. がレポことを確認してください
  4. ください(暗号化されていないall.gpgをNOT)あなたのレポにall.gpg.encを追加セキュア変数にアクセスできる
  5. この行を.travis.ymlファイルに追加して、暗号化されたプライベート署名鍵を復号する

    openssl aes-256-cbc -K $encrypted_0a6446eb3ae3_key -iv $encrypted_0a6446eb3ae3_key -in all.gpg.enc -out all.gpg -d

  6. インポートGPGキーgpg --import all.gpg

  7. は、あなたのイメージサイン
  8. gpg --output hello.bin.asc --sign hello.bin
$ travis encrypt-file all.gpg --add 
encrypting all.gpg for rkh/travis-encrypt-file-example 
storing result as all.gpg.enc 
storing secure env variables for decryption 

Make sure to add all.gpg.enc to the git repository. 
Make sure not to add all.gpg to the git repository. 
Commit all changes to your .travis.yml. 
関連する問題