服务器部署项目脚本,写一个自动化部署脚本

f9a79073083d3aed4107c781e921f352.png

.sh脚本一键部署

打游戏用过一键无敌

正好这几天熟悉新项目

我就把之前的./push.sh迁移了过来

顺便

写了个自动化构建并提交到服务器的.sh脚本

一、背景

先是一个git的提交脚本

因为每次提交git都需要输入这几个命令

1

2

3

4git pull

git add .

git commit -m 'xxx'

git push origin xxx

觉得重复性好高

应该可以用自动化的方法改进一下这个流程

所以我就参照网上的方法

写了一个自己的提交脚本

以后只用在目录下运行 ./push.sh

就可以自动化提交git了

很方便

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#!/bin/sh

echo "正在拉取文件..."

git pull

echo "正在添加文件..."

git add .

echo -n "正在提交备注...,请填写备注(可空)"

read remarks

if [ ! -n "$remarks" ];then

remarks="常规提交"

fi

git commit -m "$remarks"

echo "正在开始提交代码..."

git push origin dark_theme

echo "代码提交成功,正在关闭..."

使用方法是

将这段代码保存到你项目目录下的push.sh中

没有的话新建一个

然后运行 chmod 755 push.sh

然后你每次需要提交git就只需要输入./push.sh

(或者在package.json中添加”push”: “./push.sh”,每次npm push即可)

它就可以帮你自动提交了

二、新项目

新项目的测试环境上线方式是

1、前端把包打出来

2、登陆服务器

3、用最新包替换掉服务器上的文件夹

我在熟悉了这一流程后觉得

一样是可以用shell来写一个自动化脚本来简化这一操作的

所以我就查阅了一些资料

主要是了解如何用shell解决登陆服务器需要手动输入密码的问题

最后才用了两个脚本

一个是#!/bin/sh

一个是#!/usr/bin/expect

前一个用来打包

后一个用来复制到服务区

三、代码

./ssh.sh

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16#!/bin/sh

rm -rf h5

rm -rf dist

npm run build

if [ -d "dist" ]; then

echo "将dist重命名为h5..."

mv dist h5

echo "重命名已完成"

fi

./expect.sh

rm -rf h5

./expect.sh

1

2

3

4

5

6#!/usr/bin/expect

spawn scp -r ./h5/ root@ip地址

expect "*password*"

send "密码\r"

interact

使用方法和之前一样

首先给这两个shell脚本放到项目根目录下并赋予权限

执行chmod 755 ssh.sh expect.sh

然后在每次需要打包到测试环境的时候

只需要执行

./ssh.sh 即可

四、思考

在经过尝试用一个shell文件失败后

我改用了两个shell文件来执行这段命令

但是这样并不优雅

所以

还应该继续探索

看看有没有更方便更优雅的shell编写方式

参考链接:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值