jenkins部署vue项目带版本管理

1.新建自有风格项目

2.选择参数化构建过程

image.png

3.git代码仓库配置好

4.构建环境选node

image.png

5.新增一个有条件的构建步骤

image.png

我这里判断是发版还是回滚,如果是发版才执行打包命令


image.png

判断脚本如下:

#!/bin/bash

if [ $BUILD_TYPE == Deploy ];then 
  echo "Deploy,  build required" 
  exit 0
else
  echo "No Need to build"
  exit -1
fi

打包命令如下:

npm install 
rm -rf ./dist/*
npm run build-test

6.再新建一个有条件的构建步骤

这次我们也是先判断是发版还是回滚

  • 如果是发版,那么上边第5步肯定已经打包好了,所以我们只需要把打包好的包放到nginx代理目录下,且备份一下,回滚用(复制到备份文件夹下,最好版本控制)
  • 如果是回滚,那么就从备份文件夹下,选取对应的版本放到nginx代理目录下即可
  • 最后的步骤是清理备份文件夹


    image.png

    脚本如下:

case $BUILD_TYPE in
  Deploy)
    echo "BUILD_TYPE:$BUILD_TYPE"
    path="/root/boss-test/bak/$BUILD_NUMBER/dist"
    if [ -d $path ];
    then
        echo "The files is aready exists "
    else
        mkdir -p $path
    fi
    cp -rf ./dist/*  $path
    rm -rf /root/boss-test/dist/*
    cp -rf ./dist/*  /root/boss-test/dist
    echo "completing"
    ;;
  Rollback)
    echo "BUILD_TYPE:$BUILD_TYPE"
    echo "Version:$Version"
    rm -rf /root/boss-test/dist/*
    cp -rf /root/boss-test/bak/$Version/dist/*  /root/boss-test/dist
    ;;
  *)
  exit
      ;;
esac


ReservedNum=20  #保留文件数
FileDir=/root/boss-test/bak
date=$(date "+%Y%m%d-%H%M%S")

cd $FileDir   #进入备份目录
FileNum=$(ls -l | grep '^d' | wc -l)   #当前有几个文件夹,即几个备份

while(( $FileNum > $ReservedNum))
do
    OldFile=$(ls -rt | head -1)         #获取最旧的那个备份文件夹
    echo  $date "Delete File:"$OldFile
    rm -rf $FileDir/$OldFile
    let "FileNum--"
done 

你可能感兴趣的:(jenkins部署vue项目带版本管理)