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

使用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即可

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值