Travis CI推送文件到服务器
travis ci推送文件到自己的服务器
有的时候需要在travis上推送文件到我们自己的服务器,但是这需要我们服务器的密码或者秘钥,但是放在库中可能不安全。所以要用到travis client来加密。
1.安装travis client
- 1.
yum install ruby
- 2.
ruby -v
- 3.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
- 4.
curl -sSL https://get.rvm.io | bash -s stable
- 5.
rvm -v
- 6.
rvm install 2.6
- 7.
gem install travis --no-document
2.使用travis client
2.1登录
travis login --com
,也可以是–org,看自己的账号在哪个平台。
2.2加密文件
travis encrypt-file ~/.ssh/id_rsa --add
,这个就是把本机的~/.ssh/id_rsa
文件加密,这样我们就不会暴露我们原本的文件。
注意,这里加密完成之后会新建一个id_ras.enc
文件,只需要把这个文件加到库中,id_ras
不能加到库中。
这个命令还会自动修改我们的travis.yml
会加上一行openssl aes-256-cbc -K $encrypted_f217180e22ee_key -iv $encrypted_f217180e22ee_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d
类似的,这个命令就是在build期间,把加密的文件复原。
3.修改脚本
还需要稍微修改我们的脚本
language: node_js
node_js:
- "node"
before_install:
- openssl aes-256-cbc -K $encrypted_f217180e22ee_key -iv $encrypted_f217180e22ee_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d
- chmod +x travis.sh
# 为了跳过known_hosts
addons:
ssh_known_hosts:
- 11.22.33.44
script:
- chmod 600 ~/.ssh/id_rsa
- ./travis.sh
#!/bin/bash
hugo
# 调试ssh连接
# ssh -v root@11.22.33.44
# 注意:scp会传输,但是不会显示在日志里面
scp -r public/* root@11.22.33.44:/root/Workspace/nginx/html/hugo
echo "传输完成"