我有一个静态网站,我尝试使用Travis CI将内容迁移到S3存储桶,每次我更改GitHub时,我都会托管网站。为了支持这一点,我有以下.travis.yml文件:
language: python
python: '2.7'
install: true
script: true
deploy:
provider: s3
access_key_id: XXXXX
secret_access_key: YYYYY
bucket: thug-r.life
skip_cleanup: true
region: us-east-1
local_dir: public
工作正常。除了我在公共回购中以GitHub上的明文形式保密。那么......那很糟糕。 Travis CI有一个关于加密密钥(https://docs.travis-ci.com/user/encryption-keys/)的部分,我遵循了这一部分。使用CLI工具
travis encrypt secret_access_key="YYYYY" --add
插入我文件的底部
env:
global:
secure: ZZZZZ
所以我尝试将原始文件修改为
deploy:
secret_access_key:
secure: ZZZZZ
然后Travis CI抱怨我们计算的请求签名与您提供的签名不符。'
所以我尝试加密没有引号
travis encrypt secret_access_key=YYYYY --add
并以相同的方式使用输出。
我应该如何加入加密密钥?
答案 0 :(得分:2)
Travic CI帮助加密密钥(https://docs.travis-ci.com/user/encryption-keys/)的所有示例都是以下形式:
travis encrypt SOMEVAR="secretvalue"
它声明加密密钥和值。因此,获取上述加密的输出并使用如上所述
deploy:
secret_access_key:
secure: ZZZZZ
解密为
deploy:
secret_access_key: secret_access_key: YYYYY
导致错误的原因。相反,我最终做的工作是:
travis encrypt "YYYYY" --add
并将其作为
用于.travis.yml文件中deploy:
secret_access_key:
secure: ZZZZZ
最终被接受了。
tl; dr加密secure_access_key时不包括密钥