是什么
- 远程测试(构建)
- 手动执行用户提交的测试脚本
- 可根据语言配置环境与参数
- 基于流的构建
- 自动化部署
- 测试完成后自动部署
- 部署结果可通过邮件告知用户
流程
- 登录 travis-ci.org
- 勾选需要 ci 的 github 项目
- 本地 git add . && git commit -m ‘xxx’ && git push
- travis 接收到 push,进行远程 ci
- test 完毕,执行部署脚本
- 部署完成
远程部署需要准备的
- 本机安装 travis 控制台
gem install travis
- 远程机开启 ssh 免密登录,本地 ssh 私钥文件假设为
~/.ssh/id_rsa
- 登录 travis:
travis login
- 目录切换到项目,加密私钥
travis encrypt-file ~/.ssh/id_rsa --add
- yml 文件内,
after success
加入 ssh 连接与脚本执行语句
坑
- 信任 ip
- 远程服务端第一次 ssh 连接的时候需要信任 ip,这边使用
StrictHostKeyChecking=no
参数来解决
- known_hosts
- 不知道和 1.是不是同一个问题,在 yml 中添加节点 addons: ssh_known_hosts: [ip]解决
- 执行脚本环境变量
- 远程部署时执行
npm install
报找不到 npm 的错误,是因为远程连接之后没有加载环境变量导致的。
- 解决方式:在部署脚本第一行写:
source /etc/profile # 环境变量路径
- Npm permission deny
- 改用 cnpm
- 路径分隔符
修改为 ~/ssh/id_rsa -d
yml 文件 demo
language: node_js
node_js: 8.5
sudo: required
addons:
ssh_known_hosts: 111.111.111.111
cache:
directories:
- node_modules
before_install:
- openssl xxxxxxxxxxx
-in id_rsa.enc -out ~/.ssh/id_rsa -d
- chmod 600 ~/.ssh/id_rsa
install:
- npm install
after_success:
- ssh root@111.111.111.111 StrictHostKeyChecking=no 'cd /var/www/static/travis/ && git pull && sh ./deploy.sh'
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于