前端工程化-自动化运维部署之jenkins

大部分公司的前端项目发布工作,都是通过jenkins ⭐20kk8s ⭐94k来自动化的方式进行部署。
正式环境都是运维部门去做的,申请上线单提前给过去,测试环境的话太频繁,几乎是开发或者测试来部署。目前我也只用过这两个工具,通过 web 操作,很是方便。

前端开发者平日里只需要把代码提交到 git 库即可,也无需懂这些活儿,面试的时候也很少涉及,你问,那为啥还要看这些?

我不会说多学点东西是好的,因为再好的知识,对你没有用终归随着时间而淡忘。
比如说在正式环境抛错,图片文件加载慢,测试环境正常,影响到用户使用的时候,你知道运维同学哪里没有配置好,nginx 没有配置好,gzip 没有开启,或者代码不是最新的时候,你能最快定位问题而不是去怀疑自己提交了有 bug 的代码。在你需要运维/后端同学配合优化项目的时候,你有资格和他们讨论怎么做,如何不给其他部门同事增加额外工作量,不使别人反感,同时快速推进功能,提升业务质量的时候。你会明白涉及到工作交付上下游同事的工作,你都应该多懂点。

今天就先聊聊 Jenkins

核心点

持续集成

随着业务增大,开发人员增多,项目迭代快速,多分支提交功能到测试分支,由测试分支合并到 uat 分支,再回归测试、压力测试后,再合并代码至 master 分支,完成业务迭代,与此同时,小优化小 bug 已经在开发分支提交测试了,多条任务线穿插…是不是已经应接不暇了。

持续集成就是可以快速迭代,在代码更新后,自动化测试(很多公司并不配置,业务来驱动),自动拉取,自动构建,自动部署到生产机子上,这一流程使项目质量得到很大的保证。同时这样每次更新一个功能点,发现错误也更容易、迅速。回滚代码操作也是非常简单。

持续交付

就是说代码不管什么时候更新,用户总是无感的,随时可以交付产品/项目

持续部署

代码经部们负责人代码审核后(或者没有这一环节),可以开始部署到生产阶段了。

环境

  • windows 安装包
  • Java 8 ( JRE 或者 JDK 都可以,支持 Java11-17 版本,链接)

下载

官网镜像地址: https://mirrors.jenkins.io/
下载地址: https://jenkins.io/download/
华为镜像地址: https://mirrors.huaweicloud.com/home
阿里云:https://mirrors.aliyun.com/jenkins/?spm=a2c6h.13651104.0.0.c800db0exjUxTr

安装

官网:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/

  • 第一步

    1
    2
    λ cd /d D:\software\jenkins // 你的文件安装路径下
    λ java -jar jenkins.war --httpPort=7777 --enable-future-java // 端口号7777,默认8080
  • 浏览器打开 http://localhost:7777/

  • 安装提示完成初始化

  • 成功

全局配置

至 Manage Jenkins -> Global Tool Configuration, 配置 NodeJs

创建Pipeline

回滚配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
echo "##################################"
echo $WORKSPACE
echo $BUILD_DISPLAY_NAME
echo "Status:$Status"

case $Status in
Deploy) #发布

path="${WORKSPACE}/bak/${BUILD_DISPLAY_NAME}" #创建每次要备份的目录
if [ -d $path ];
then
echo "The files is already exists "
else
mkdir -p $path
fi
\cp -R ${WORKSPACE}/dist/. $path #将打包好的包备份到相应目录,覆盖已存在的目标
echo "Completing!"
;;
Rollback) #回滚

cd ${WORKSPACE}/dist/ #进入备份目录
rm -rf *
\cp -rf ${WORKSPACE}/bak/$Version/. ${WORKSPACE}/dist/. #将备份拷贝到程序打包目录中,并覆盖之前的war包
echo "Completing!"
;;
*)
exit
;;
esac

然后出现这样,就成功了.

每一次构建成功后,留下备份dist文件夹,复制一份到文件夹bak下,回滚的时候按手动选择哪次构建版本号来替换源文件

结束

UI自动化测试工具Puppeteer 技术出身的能做好管理吗?

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×