Jenkins结合shell脚本实现(gitLab/gitHub)前端项目自动打包部署服务器
原始发布部署:
石器时代的我们,先是本地打包好项目,在去服务器上把原来的文件删了,然后回到本地copy到服务器;
这操看起来简单,实际部署的人就知道多烦了,假如来几个项目都要重新发布;那就爽了;
今天小编分享个自动打包部署方法,Jenkins 上只要你的小鼠标轻轻一点就OK;
正文:
首先是服务器上安装 Jenkins ;前提呢要现在服务器上安装Java 环境 因为他是依据Java 环境运行的;
这里如何安装就不多说了,请参考这位哥们的博文 https://blog.csdn.net/running_shuai/article/details/80625822 基本在服务器上傻瓜式安装就行了;
安装后接下来是时候展现真正的技术了:
注意: 部署前端项目还需要用到 git 以及 node.js ,java项目的话那就是maven了; git 的话;直接在服务器上下载 git 安装解压就行了,没什么好注意的;
jenkins需要git插件来支持git,所以我们需要为jenkins添加Git插件,还有node也是,需要NodeJS Plugin插件, gitLab需要GitLab Plugin,gitHub需要GitHub Plugin,总之需要的插件还蛮多 具体看你项目构成;
下载插件的位置: 系统管理 --> 插件管理 然后就能看到很多插件了,下载下来就行
1.1:配置一个 Publish over SSH (这是你的服务器,你项目要部署到的地方)

1.2: 新建一个任务 (你要发布的项目)


1.3: 配置gitLab / gitHub 源码


1.4: 配置构建触发器

1.5: 构建环境

1.6: 配置构建命令 (就是些在服务器里要执行的命令)

1.7: 我公司项目因为多用的是一段shell脚本 去执行删除、解压等操作的, 这个可忽略,那上面 Exec command 部分你只需 改成加压命令就行 tar –xvf qipweb.tar // 解压 tar包,再点击保存 理解构建就行了,还可以打开控制台输出看构建情况;
1.8: 用脚本执行的话:
#!/bin/sh
# chkconfig:
# description:qinlin
# processname:qinlin
# serviceName 对应的压缩包名字 export serviceName=qipweb backupSuffix=`date +%Y%m%d%H%M%S`
echo '当前服务器时间:'${backupSuffix} d_deploy() {
echo '备份'${serviceName}'服务...'
cp -r /qinlin/data/${serviceName} /qinlin/backup/${serviceName}-${backupSuffix}
echo '删除'${serviceName}'安装包...'
rm -rf /qinlin/data/${serviceName}/*
echo '清除'${serviceName}'旧目录...'
rm -rf /qinlin/deploy/dist/
echo '解压'${serviceName}'安装包...'
tar -zxf /qinlin/deploy/${serviceName}.tar -C /qinlin/deploy/
echo '拷贝'${serviceName}'安装包...'
cp -r /qinlin/deploy/dist/* /qinlin/data/${serviceName}/
cp /qinlin/config/MP_verify_0Ll9VrXDh67K2IPx.txt /qinlin/data/${serviceName}/
}
case $1 in
deploy) d_deploy ;;
*) echo "require start|stop|restart|deploy" ;;
esac
注意: 用这个脚本的话需要在这脚本所在位置执行命令 chmod +x config-run_qipweb.sh 将这脚本变成可执行文件,到时他自己就可以执行了;
1.9: 构建打包




结语: 有问题欢迎留言
Jenkins结合shell脚本实现(gitLab/gitHub)前端项目自动打包部署服务器的更多相关文章
- DevOps系列——Jenkins/Gitlab自动打包部署
前面只说了DevOps的两个基础组件Jenkins和GitLab,客官也不要着急,我们玩就玩的深入一点,Gitlab和Jenkins的各种配置和 插件很多,也够啃一阵子的,不要照着操作一通就感觉万事大 ...
- 解放双手 | Jenkins + gitlab + maven 自动打包部署项目
前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...
- Github前端项目排名
Github前端项目排名(2016-04-04) 一.前言 近几年前端技术日新月异,从 RequireJS 到 AngularJS 再到 React,似乎每天都有新的技术诞生.而大神们总能第一时间 ...
- Shell脚本,自动化发布tomcat项目【转载】
Shell脚本,自动化发布tomcat项目脚本. 1. vko2c_auto_build_by_scp.sh 文件内容: #---------------------start------------ ...
- Shell脚本,自动化发布tomcat项目【转】
Shell脚本,自动化发布tomcat项目脚本. 1. vko2c_auto_build_by_scp.sh 文件内容: #---------------------start------------ ...
- jenkins中shell脚本编写的两个注意点
在jenkins的build中,如果用shell脚本的话,要记住有两个地方要注意 1.由于默认jenkins是使用/bin/bash -xe xxx.sh来调用脚本的,所以不同于日常写的脚本,任何一行 ...
- 解决Jenkins用shell脚本部署后,Jenkins自动杀掉启衍生出来的守护进程
Jenkins部署java项目遇到的问题: 1.Jenkins执行构建后,需要手动执行startup.sh,站点才能正常访问 产生原因: shell脚本发布时,会衍生进程,Jenkins默认会自动杀掉 ...
- jenkins调用shell脚本 输出带颜色字体
jenkins需要安装AnsiColor插件在构建环境项选择“color ansi console output” 安装插件AnsiColor shell 脚本相关颜色设置 echo -e " ...
- 使用jenkins进行前端项目自动部署
前面的话 后端的nodeJS项目可以使用pm2进行自动部署,由于前端项目打包后是静态资源,不需要进程守护.一般地,前端项目使用jenkins来进行自动部署,包括打包.测试等一系列流程.本文将详细介绍j ...
随机推荐
- Centos7 pcs pacemaker高可用安装配置详解
- ASP.NET 教程汇总
channel9 https://channel9.msdn.com/ .net core项目实战 https://study.163.com/course/introduction.htm?cour ...
- python习题二
1.输入1-127的ascii码并输出对应的字符 for i in range(1,128): print(chr(i)) 2.输入a,b,c,d,4个整数,计算a+b-c*d的结果 a = i ...
- SQL 聚集函数(聚组函数)的使用 注意事项
原文地址 http://hi.baidu.com/sdunus/blog/item/333c1a29305041fe99250aad.html 在介绍GROUP BY 和 HAVING 子句前,我们必 ...
- P4174 [NOI2006]最大获利(网络流)
P4174 [NOI2006]最大获利 还是最大权闭合子图的题 对于每个中转站$k$:$link(k,T,P_k)$ 对于每个用户$i$.中转站$A_i,B_i$.贡献$C_i$ $link(S,i, ...
- 后端必备的Linux知识
目录 从认识操作系统开始 操作系统简介 操作系统简单分类 初探Linux Linux简介 Linux诞生简介 Linux的分类 Linux文件系统概览 Linux文件系统简介 文件类型与目录结构 Li ...
- Scrum Meeting 合集
一.Alpha [Alpha]Scrum meeting 1 [Alpha]Scrum meeting 2 [Alpha]Scrum meeting 3 [Alpha]Scrum meeting 4 ...
- eclipse中出现An internal error occurred during: "Initializing Java Tooling"
关于这个问题我查了一下,就是删除.projct文件夹下的文件. 自己试了一下,这个可以及解决问题可是会出现新的问题. 1.SVN关联没了,这样做你的svn信息都没了,项目还要重新导一遍 2.出现了新的 ...
- tcp的三次握手,四次挥手
为了更好的记住知识点,所以将最近学习的知识点记录下来: 最开始A和B都处于closed(关闭连接状态) 1.tcp的第一次握手:客户端A 向服务器端B 发送请求连接报文段(包含SYN=1,初始序号s ...
- JS getBoundingClientRect()
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...