项目添加到服务器报错,基于github+travis自动部署vue项目到远端服务器

前期准备

github账号一个

一个vue的项目

一台linux服务器

travis中添加项目

travis是基于github的,所有只有github的账号可以登录travis,开发者必须有一个github的账号,登录后,点击加号,开始添加项目

bVbwIEi?w=646&h=494

点击Manage repositories on GitHub,前往github中选择项目

bVbwIEr?w=1424&h=438

这里github提供的两种模式,第一种添加所有项目,第二种添加指定项目,一般我们选择第二种添加需要添加的项目

bVbwIE8?w=1520&h=816

Github生成访问令牌

在github的个人中心,https://github.com/settings/tokens/路径下,生成一个访问令牌,添加到travis中,给travis操作仓库的权限

bVbwIRm?w=1996&h=374

复制令牌内容,进入travis中的中,找到SSH key的菜单,将令牌内容贴入,点击Add

bVbwISX?w=1024&h=804

travis配置文件

在项目根目录下,新建.travis.yml文件。travis要执行的自动化步骤,都需要在该文件中配置,这里是一个最简单的配置文件,当travis检测到master分支代码发生变化时,自动执行npm install和npm run build

language: node_js

node_js:

- 10.16.0

cache:

directories:

- node_modules

install:

- npm install

before_script:

script:

- npm run build

after_script:

branches:

only:

- master

关于travis的更多配置,参考阮老师的教程:

travis免密登录远端服务器

部署dist目录到服务器

开发者在本地执行npm run build,编译后生成dist目录,服务器需要的也是dist目录。travis要做的就是把dist目录自动发送到服务器

先说思路,当travis执行build生成目标文件后,travis把dist目录提交到仓库的指定分支,比如叫deploy分支,通过ssh自动登录服务器,执行git pull,把deploy分支拉下来

after_script:

- cd ./dist

- git init

- git config user.name "your name"

- git config user.email "your email"

- git add .

- git commit -m "Travis CI Auto Builder"

- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:deploy

- ssh your-name@xx.xx.xx.xx 'cd /your-path && git fetch --all && git reset --hard origin/deploy && git pull'

部署成功

配置文件上的操作执行成功后,你的项目就多了这个高大上的标志

bVbwINb?w=1170&h=208

一些报错

Travis-CI解密证书时报错

报错提示一般是这样的:

openssl aes-256-cbc -K $encrypted_d3c25c1810a6_key -iv $encrypted_d3c25c1810a6_iv -in id_rsa.enc -out ~\/.ssh/id_rsa -d

~/.ssh/id_rsa: No such file or directory

The command "openssl aes-256-cbc -K $encrypted_d3c25c1810a6_key -iv $encrypted_d3c25c1810a6_iv -in id_rsa.enc -out ~\/.ssh/id_rsa -d" failed and exited with 1 during .

这个报错情况的出现,有可能是因为在使用travis encrypt-file ~/.ssh/id_rsa --add命令生成加密密钥时,自动增加了转义字符串,需要手动删除转义字符

生成的密钥是这样的:

- openssl aes-256-cbc -K $encrypted_d3c25c1810a6_key -iv $encrypted_d3c25c1810a6_iv -in id_rsa.enc -out ~\/.ssh/id_rsa -d

删除转义字符后是这样的:

- openssl aes-256-cbc -K $encrypted_d3c25c1810a6_key -iv $encrypted_d3c25c1810a6_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值