使用Travis自动部署前端页面到阿里云服务器

版权声明:工作和生活的点点滴滴都应该记录下来! https://blog.csdn.net/u011350541/article/details/84034141

使用GitHub管理代码,写完之后经常需要打包部署到阿里云服务器,于是开始学习使用travis CI。

中间过程参考如下
持续集成服务 Travis CI 教程
http://www.ruanyifeng.com/blog/2017/12/travis_ci_tutorial.html
https://segmentfault.com/a/1190000011218410?_ea=5032568

我碰到的问题是:

iv undefinition

原因在于`.travis.yml里的两个变量没有读取到,解密失败

travis encrypt-file命令将使用对称加密 (AES-256) 为你加密文件, 并将密钥存储在secure变量中,travis CI没有把这个值自动同步到travis项目下的变量里,百思不得解

于是采用指定key 和iv值的方式:

travis encrypt-file ~/.ssh/id_rsa --add -k XX64位XXX --iv XX32位XX 

然后手动在travis 平台项目下添加这两个环境变量

最终配置如下:

language: node_js
node_js:
- 8.9.4
cache:
  directories:
  - node_modules
before_install:
- openssl aes-256-cbc -K $encrypted_25e713513946_key -iv $encrypted_25e713513946_iv
  -in .travis/id_rsa.enc -out ~/.ssh/id_rsa -d
- chmod 600 ~/.ssh/id_rsa
addons:
  ssh_known_hosts: "$IP"
branches:
  only:
  - master
install:
- npm install
before_script:
script:
- npm run build
after_script:
- pwd
- scp -o StrictHostKeyChecking=no -r dist/  root@$IP:/opt/nginx/

平台最终实现自动部署:
在这里插入图片描述

在这里插入图片描述

github:https://github.com/libp/littleweb

====================
11.16补充,终于找到key和iV没有自动进入travis的原因了。

travis有两个地址:
https://www.travis-ci.org/
https://travis-ci.com/
前一个面向公有仓库,后一个面向私有仓库。
执行travis encrypt-file ~/.ssh/id_rsa --add只会将key和iv添加到公有仓库里。我在私有仓库里当然找不到!!
后面果断把私有仓库干掉,取消在github里的授权就OK了
只需要保留https://www.travis-ci.org/这个地址的CI build即可

猜你喜欢

转载自blog.csdn.net/u011350541/article/details/84034141