如何加密你的特拉维斯键

问题描述:

特拉维斯docs说,最简单的方法来加密密钥如。上传到S3,就是使用他们的命令行工具。如何加密你的特拉维斯键

有没有其他方法可以做到这一点,而不需要安装Ruby等只是使用他们的命令行工具?

碰巧有一个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