6

我看到 Travis 有一个加密文件的工作流程,在这里

我的用例稍微简单一些,我只想为在 Travis-CI 上构建的文件生成签名。说:

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

在这种情况下hello-0.0.1-a.bin,由 Travis 构建创建,并将作为发布推送到 Github。同样,签名也必须作为版本推送到 Github(即在同一标签下)。

如果私钥/公钥对对于该构建是唯一的,我并不十分关心(即不是破坏交易)。但是,如果在构建之间共享私钥/公钥对,那将是理想的。

欣赏和提示提示或咒语。

4

1 回答 1

9

它基本上归结为几个步骤。

  1. 从您的 gpg 密钥环中导出密钥gpg --export-secret-keys > all.gpg
  2. travisruby​​ gem 用于encrypt-filegpg 密钥环(例如all.gpg
  3. 添加all.gpg.enc到您的仓库(不是未加密的all.gpg
  4. 确保 repo 可以访问安全变量
  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. 签署你的形象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.
于 2017-07-19T21:18:20.673 回答