我正在尝试将Travis CI版本用于我自己的私有分支和组织的回购。
我使用travis encrypt-file
命令加密了配置文件,它似乎在我自己的fork的travis设置中创建了两个环境变量,如:“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 的设置中,这样构建就可以解密配置文件,无论它是在我的fork还是我的org的fork中。
或者有更好的方法来处理这些情况吗?
这可能与以下问题相同:What do I need for Travis-CI to decrypt secure variables on my fork?
答案 0 :(得分:3)
我找到了一种方法来实现这一目标。由于您无法获得Travis为您生成的密钥,因此您只需生成自己的密钥即可。然后,加密您的秘密商品并将密钥推送到任何需要它们的私人仓库(以及您信任的成员):
openssl aes-256-cbc -K 1000000000000000000000000000000000000000000000000000000000000001 -iv 10000000000000000000000000000001 -in test.config -out test.config.enc
现在,我们为Travis提供密钥,Travis以per-repo为基础存储它们。这些命令将它们存储在任何设置为" origin"在git:
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文档的一部分。
请注意,有一些Security Restrictions when testing Pull Requests。 Travis为您提供了一个环境变量,因此您可以有条件地跳过需要安全配置的测试。