• jenkins自动触发构建+gitlab迁移


    1. 安装jenkins
        cat /etc/yum.repos.d/jenkins.repo
        [jenkins]
        name=Jenkins
        baseurl=http://pkg.jenkins.io/redhat
        gpgcheck=1
    
        yum calen all && yum makecache
        yum install -y jenkins
        启动:systemctl satrt jenkins && systemctl enable jenkins
        访问ip+8080端口  配置文件:/etc/sysconfig/jenkins
        安装插件时一直提示离线,修改¥JENKINS_HOME/updates/default.json无效
        解决:在hosts文件指定解析:192.168.0.234	www.google.com重新安装插件
    
    2. 配置jenkins
        系统管理-->全局工具配置-->配置settings.xml,JDK,MVN
        
    

     

     

    3.  新建自由风格项目
         参数化构建过程-->选项参数
         git参数    #需要安装git插件
         字符参数
    

     

     

    4. 配置构建触发器

     

     

     

    5. 测试
        点击test,测试200
        每次修改jenkins,都需要点击test(否则不生效)
    

     

    case $Status in
    	Deploy)
        	echo "Status:$Status"
            path="${WORKSPACE}/bak/${BUILD_NUMBER}"
            if [ -d $path ];then
            	echo "The ${path} is already exists"
            else
            	mkdir -p $path
            fi
            cd ${WORKSPACE}/1.0/${ITEM}
            yarn
    		yarn build:dev
            cp -arf ${WORKSPACE}/1.0/${ITEM}/paylabs-${ITEM} $path
            scp -r ${WORKSPACE}/1.0/${ITEM}/paylabs-${ITEM}/* deploy@192.168.0.229:/data/node/${ITEM}/
            echo "Completing!"
            ;;
         Rollback)
         	echo "Status:$Status"
            echo "Version:$Version"
             
            scp -rp ${WORKSPACE}/bak/$Version/paylabs-${ITEM}/* deploy@192.168.0.229:/data/node/${ITEM}
            ;;
        *)
        	exit
            ;;
    esac
    
    6. gitlab代码迁移
        git fetch --all
    
        git fetch --tags
    
        git clone --mirror http://域名/分组/仓库名称.git
    
        cd 仓库名称.git git push --mirror http://新域名/新分组/新仓库名称.git
    
    7. 启动脚本
    #!/bin/bash
    APP_NAME=/data/install/version/pay-web-1.0-RELEASES.jar
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh robotcenter.sh [start|stop|restart|status]"
        exit 1
    }
    
    #检查程序是否在运行
    is_exist(){
      pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
      #如果不存在返回1,存在返回0     
      if [ -z "${pid}" ]; then
       return 1
      else
        return 0
      fi
    }
    
    #启动方法
    start(){
      is_exist
      if [ $? -eq 0 ]; then
        echo "${APP_NAME} is already running. pid=${pid}"
      else
        nohup java -jar ${APP_NAME}  >robotcenter.out 2>&1 &
      fi
    }
    
    #停止方法
    stop(){
      is_exist
      if [ $? -eq "0" ]; then
        kill -9 $pid
      else
        echo "${APP_NAME} is not running"
      fi  
    }
    
    #输出运行状态
    status(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "${APP_NAME} is running. Pid is ${pid}"
      else
        echo "${APP_NAME} is NOT running."
      fi
    }
    
    #重启
    restart(){
      stop
      sleep 5
      start
    }
    
    #根据输入参数,选择执行对应方法,不输入则执行使用说明
    case "$1" in
      "start")
        start
        ;;
      "stop")
        stop
        ;;
      "status")
        status
        ;;
      "restart")
        restart
        ;;
      *)
        usage
        ;;
    esac
    

      

      

      

      

      

      

      

  • 相关阅读:
    spring事务在web环境中失效的问题
    oracle行转列和列转行(pivot 和 unpivot 函数,wm_concat函数 )
    查询Oracle正在执行的sql语句及kill被锁的表
    oracle last_value使用过程中的一个细节
    oracle查询历史执行语句
    前端PHP入门-020-重点日期函数之获取时期时间信息函数
    前端PHP入门-019-内置函数之数学函数-很重要
    前端PHP入门-016-静态变量
    前端PHP入门-017-系统内置函数-会查阅API
    ajax跨域调用webservice例子
  • 原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/15137452.html
Copyright © 2020-2023  润新知