如何加密你的特拉维斯键
答
碰巧有一个Javascript方法,它可用here与相应的github回购here。
要使用加密的S3密钥是相当混乱的,因为在Travis文档中没有很好地解释这些原则。
在上面提到的表单的左上角字段中,输入您的Travis-CI userid/repo-name,这样就可以让脚本为您的存储库下拉由Travis创建的公钥。
在右侧前场,你输入:
AWS_ACCESS_KEY_ID:...the..access..string..from..Amazon.IAM...
点击加密和复制下面加密数据
然后在右侧前场产生的字符串,请输入:
AWS_SECRET_ACCESS_KEY:...the.very.secret.string.from.Amazon.IAM...
并再次复制加密的字符串。请注意,由于随机数据包含在加密字符串中,加密字符串每次都会发生更改。
这些加密密钥对由Travis解密并导出为环境变量。您在.travis.yml文件中像这样输入它们:
global:
# travis encrypt AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
- secure: "--first-very--long-encrypted-string--="
# travis encrypt AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
- secure: "--second--very-long-encrypted-string--="
- AWS_S3_BUCKET_NAME: yourbucketname
现在在部署部分,您使用时使用的加密对
deploy:
provider: s3
# these are set up in the global env
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
bucket: $AWS_S3_BUCKET_NAME
skip_cleanup: true
upload-dir: travis-builds
的名字引用它们如果您用过ACCESS_ID在全局环境中被加密,然后在部署中被称为$ ACCESS_ID
upload-dir是在指定的存储桶中创建的。
当你的构建特拉维斯运行时,解密的密钥不被暴露。相反,你看到的是:
See https://docs.travis-ci.com/user/workers/container-based-infrastructure/ for details.
Setting environment variables from .travis.yml
$ export AWS_ACCESS_KEY_ID=[secure]
$ export AWS_SECRET_ACCESS_KEY=[secure]
$ export AWS_S3_BUCKET_NAME=yourbucketname