zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    [No000068]document.body.clientHeight 和 document.documentElement.clientHeight 的区别
    [No000067]Js中获取当前页面的滚动条纵坐标位置scrollTop
    jquery 给a标签绑定click
    java 延时
    MySQL建表语句+添加注释
    ubuntu 搜狗输入法内存占用太多,卡顿不够处理办法
    org.apache.http.client.HttpClient使用方法
    json 文件打读取
    bootStrap @media 用法
    java web项目获取项目路径
  • 原文地址:https://www.cnblogs.com/wangchengyi/p/15771955.html
Copyright © 2011-2022 走看看