Travis CI 可以在同一个 repo 的不同分支中使用加密文件吗?
Can Travis CI use an encrypted file in different forks of the same repo?
我正在尝试让 Travis CI 构建在我自己的私人分支和我组织的仓库中工作。
我使用 travis encrypt-file
命令加密了一个配置文件,它似乎在 travis 设置中为我自己的 fork 创建了两个环境变量,看起来像:"encrypted_d1234_key" 和 "encrypted_d1234_iv" .
这些在构建运行时用于解密配置文件,如下所示:
openssl aes-256-cbc -K $encrypted_d1234_key -iv $encrypted_d1234_iv -in test.config.enc -out test.config -d
我能否以某种方式将这些安全环境变量复制到我的 org 的 repo 的设置中,以便构建可以解密配置文件,无论它是在我的分支中还是在我的组织的分支中。
或者有更好的方法来处理这些情况吗?
这可能与以下问题相同:What do I need for Travis-CI to decrypt secure variables on my fork?
我想出了一个方法来让它工作。由于您无法获得 Travis 为您生成的密钥,因此您只需要生成自己的密钥即可。然后,加密你的秘密好东西并将密钥推送到任何需要它们的私人仓库(以及你信任的成员):
openssl aes-256-cbc -K 1000000000000000000000000000000000000000000000000000000000000001 -iv 10000000000000000000000000000001 -in test.config -out test.config.enc
现在,我们将密钥提供给 Travis,Travis 将它们存储在每个 repo 的基础上。这些命令将它们存储在 git:
中设置为 "origin" 的任何回购中
travis env set encrypted_d1234_key 1000000000000000000000000000000000000000000000000000000000000001
travis env set encrypted_d1234_iv 10000000000000000000000000000001
还将它们存储在您组织的存储库中。
travis env set encrypted_d1234_key 1000000000000000000000000000000000000000000000000000000000000001 -r MyOrg/MyRepo
travis env set encrypted_d1234_iv 10000000000000000000000000000001 -r MyOrg/MyRepo
Encrypting Files 文档的 "Manual Encryption" 部分对此进行了(部分)解释。
请注意,有一些 Security Restrictions when testing Pull Requests。 Travis 为您提供了一个环境变量,因此您可以有条件地跳过需要安全配置的测试。
我正在尝试让 Travis CI 构建在我自己的私人分支和我组织的仓库中工作。
我使用 travis encrypt-file
命令加密了一个配置文件,它似乎在 travis 设置中为我自己的 fork 创建了两个环境变量,看起来像:"encrypted_d1234_key" 和 "encrypted_d1234_iv" .
这些在构建运行时用于解密配置文件,如下所示:
openssl aes-256-cbc -K $encrypted_d1234_key -iv $encrypted_d1234_iv -in test.config.enc -out test.config -d
我能否以某种方式将这些安全环境变量复制到我的 org 的 repo 的设置中,以便构建可以解密配置文件,无论它是在我的分支中还是在我的组织的分支中。
或者有更好的方法来处理这些情况吗?
这可能与以下问题相同:What do I need for Travis-CI to decrypt secure variables on my fork?
我想出了一个方法来让它工作。由于您无法获得 Travis 为您生成的密钥,因此您只需要生成自己的密钥即可。然后,加密你的秘密好东西并将密钥推送到任何需要它们的私人仓库(以及你信任的成员):
openssl aes-256-cbc -K 1000000000000000000000000000000000000000000000000000000000000001 -iv 10000000000000000000000000000001 -in test.config -out test.config.enc
现在,我们将密钥提供给 Travis,Travis 将它们存储在每个 repo 的基础上。这些命令将它们存储在 git:
中设置为 "origin" 的任何回购中travis env set encrypted_d1234_key 1000000000000000000000000000000000000000000000000000000000000001
travis env set encrypted_d1234_iv 10000000000000000000000000000001
还将它们存储在您组织的存储库中。
travis env set encrypted_d1234_key 1000000000000000000000000000000000000000000000000000000000000001 -r MyOrg/MyRepo
travis env set encrypted_d1234_iv 10000000000000000000000000000001 -r MyOrg/MyRepo
Encrypting Files 文档的 "Manual Encryption" 部分对此进行了(部分)解释。
请注意,有一些 Security Restrictions when testing Pull Requests。 Travis 为您提供了一个环境变量,因此您可以有条件地跳过需要安全配置的测试。