2017-08-08 61 views
1

我有一个静态网站,我试图使用Travis CI将内容迁移到S3存储桶,我在每次提交对GitHub的更改时托管网站。为了支持这一点,我有以下.travis.yml文件:Travis CI部署到S3存储桶不能与安全密钥一起工作

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的公开回购协议上以纯文本的形式公布我的秘密之外。所以......那很糟糕。特拉维斯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 

但随后特拉维斯CI抱怨'我们计算的请求签名与您提供的签名不符。'

所以,我想不带引号

travis encrypt secret_access_key=YYYYY --add 

加密,并使用同样的方式输出。

我该如何包含加密密钥?

回答

1

所有在加密密钥的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时不包含密钥

相关问题