• jenkins安装及项目构建发布回滚


    官网部署地址:
    https://pkg.jenkins.io/redhat-stable/

    部署jenkins

    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    yum install epel-release # repository that provides 'daemonize'
    yum install java-11-openjdk-devel
    yum install jenkins
    

    配置权限

    vim /etc/sysconfig/jenkins
    修改配置
    $JENKINS_USER="root"
    

    修改目录权限

    chown -R root:root /var/lib/jenkins
    chown -R root:root /var/cache/jenkins
    chown -R root:root /var/log/jenkins
    

    启动jenkins按照提示配置
    systemctl start jenkins

    项目构建回滚
    新建项目

    配置参数化构建

    配置字符参数

    选择git地址

    编写构建脚本

    配置构建后操作需要安装Publish Over SSH

    保存后执行build


    构建脚本

    case $status in
      Deploy)
      echo Status:$status
      BAK_PATH=${WORKSPACE}/bak
      BUILD_PATH=/tmp/${JOB_NAME}
      BUILD_SAVE=5
      if [ -d $BAK_PATH -a -d $BUILD_PATH ];
      then
      echo "The files is already exists "
      else
      mkdir -p $BAK_PATH
      mkdir -p $BUILD_PATH
      fi
      cd ${WORKSPACE}/ApplicationBusinessService
      /usr/local/bin/dotnet restore
      /usr/local/bin/dotnet build
      /usr/local/bin/dotnet publish -c release -o $BUILD_PATH
      cd $BUILD_PATH
      rm -rf appsettings.json
      tar -zcvf $BAK_PATH/${JOB_NAME}_${BUILD_NUMBER}.tar.gz ./*
      while true;
      do
      cd $BAK_PATH
      BAKFILES=$(ls -1tr|wc -l)
      if [ $BAKFILES -gt "${BUILD_SAVE}" ];then
           ls -1tr |head -1|xargs rm -rf
      else
            break;
      fi
      done
      ;;
      Rollback)
      echo Status:$status
      echo Version:$Version
      ;;
     *)
      exit
         ;;
    esac
    

    构建后发布脚本

    case $status in
       Deploy)
       BAK_PATH=/tmp/AlphaSocket
       BAK_SAVE=10
       tar -zxvf  /tmp/AlphaSocket/${JOB_NAME}_${BUILD_NUMBER}.tar.gz   -C /usr/local/ApplicationBusinessService
       pm2 reload businessServer
       while true;
       do
       cd $BAK_PATH
       BAKFILES=$(ls -1tr|wc -l)
       if [ $BAKFILES -gt "${BAK_SAVE}" ];then
           ls -1tr |head -1|xargs rm -rf
       else
            break;
      fi
      done
       ;;
       Rollback)
       tar -zxvf  /tmp/AlphaSocket/${JOB_NAME}_$Version.tar.gz   -C /usr/local/ApplicationBusinessService
       pm2 reload businessServer
       ;;
      *)
      exit
         ;;
    esac
    
  • 相关阅读:
    vue实例讲解之axios的使用
    实例讲解webpack的基本使用第四篇
    实例讲解webpack的基本使用第三篇
    实例讲解webpack的基本使用第二篇
    写好一篇技术博客的正确姿势是什么
    实例讲解js正则表达式的使用
    一个综合实例讲解vue的基础知识点。
    vue实例讲解之vue-router的使用
    .NET 串口通信
    textarea赋值时换行符无效的解决方法
  • 原文地址:https://www.cnblogs.com/wangchengyi/p/15771955.html
Copyright © 2020-2023  润新知