前端Jenkins自动识别构建脚本的实现

443 阅读2分钟

工厂都开始流水线自动化了,更何况走在前沿技术的我们呢?在这个自动化的时代,还是要自动化去做事比较靠谱,一方面准确性能够提升很多,另一方面也提高了工作效率,节省了工作时间,给自己更多的时间去思考技术深处的隐秘。

首先阐述一下使用场景,自己根据前端的一些基础命令搭建了前端自动化部署环境,主要是使用的Docker+Jenkins+githook,githook主要是实现代码自动编译,其实认真的同学会发现hook也是趋于Eventbus的原理实现的。但是在真实的使用中,我们会发现每次都会去执行npm install, 如果团队人数不多,时间又多,项目又少,那还好,反正已经不在乎这些了,但是如果你没有以上条件,你会发现在这个步骤会浪费很多时间,你会经过一个漫长的等待过程,此过程你可能已经打了2局王者荣耀了,拿了2次五杀了。

起初,我看很多人都是实现库的公用,但是我看配置搭建比较繁琐,就直接放弃了,于是心生歹念:有没有更加简便偷懒的办法,所以就从package.json这个文件入手,去检测这个文件的变化情况,如果有变化了就说明有依赖包的变化,这个时候才去执行npm install,好了,基本的战略方针就是这样了,着手写脚本吧。

#!/bin/bash
timestamp=`date +%s`
filepath=./package.json
if [ -f $filepath ];
then
echo "package.json文件存在!"
filetimestamp=`stat -c %Y $filepath`
lasttimestamp=`stat -c %z $filepath`
echo "package.json文件最后修改时间:$lasttimestamp"
timecha=$[$timestamp - $filetimestamp]

  if [ $timecha -gt 60 ];then
  echo '当前时间大于文件最后修改时间60秒,不执行install:'
    npm run build:pro
  else
  echo '当前时间小于文件最后修改时间60秒,执行install:'
    npm install &&
    npm run build:pro
  fi

else
  echo "文件不存在或者您输入的路径有误"
fi

前端Jenkins构建脚本,需根据不同的环境去修改相应的打包命令, 目前Jenkins服务器上分成了三个文件去执行的:run-dev-install.sh、run-test-install.sh、run-pro-install.sh,把这三个文件传到Jenkins服务器上去,然后在Jenkins管理界面进行配置。经过测试大功告成~

image.png