• 2 gitlab+jenkins maven自动打包更新


    环境介绍: 本文基于第一篇自动代码更新环境,未安装jenkins gitlab,参考第1篇

    jenkins需安装 Maven Integration plugin 插件

    wget http://updates.jenkins-ci.org/download/plugins/maven-plugin/3.4/maven-plugin.hpi

    下载后需要在web界面上进行上传安装

    jenkins配置

    1、新建一个maven任务,丢弃旧的构建为7天

    2、添加gitlab上项目地址及验证方式,选择构建的分支。

     3、选择构建触发器类型,我这里选择当gitlab有更新时进行构建。并在高级里生成 secret token.

     4、构建的pom文件路径和构建命令参数,以当构建成war成功后,执行相应的自动化更新脚本命令

    #!/bin/bash
    
    CODE_DIR="/var/lib/jenkins/workspace/carespay/target/"     #项目目录
    DATE_TIME=`date +%Y-%m-%d-%H-%M-%S`     #时间格式
    DIR_NAME=carespay-${DATE_TIME}
    TAR_NAME=$DIR_NAME.war        #打包后的名字
    WEB_ADDR=192.168.10.227                   #web服务器地址
    WEB_DIR="/usr/local/tomcat5/webapps"             #web服务器站点目录的上一级 "/usr/local/tomcat1/webapps"
    WEB_NEWDIR_NAME=web-${DATE_TIME}        #web服务器新建的站点目录名字
    
    #进入到项目目录并打包代码
    tarcf_code(){
        cd $CODE_DIR && mv carespay-ms.war /opt/$TAR_NAME
    }
    
    #拷贝到web服务器的站点目录的上一级
    scp_code(){
        scp /opt/$TAR_NAME $WEB_ADDR:$WEB_DIR
    }
    
    #连接web服务器备份旧版代码
    tarxf_code(){
        ssh $WEB_ADDR "cd $WEB_DIR && mv carespay*  ../back/ "
    }
    
    #将新建的站点目录与html站点目录做一个软链接
    ln_code(){
        ssh $WEB_ADDR "cd $WEB_DIR && rm -rf new && ln -s $DIR_NAME new"
    }
    
    #重启tomcat
    reboot(){
        ssh $WEB_ADDR "cd $WEB_DIR && sh reboot.sh && sleep 1m"
    }
    
    #删除旧代码
    del_code(){
        ssh $WEB_ADDR "cd $WEB_DIR && rm -rf $TAR_NAME"
    }
    
    
    main(){
        tarcf_code;
        tarxf_code;
        scp_code;
        reboot;
        ln_code;
    }
    main
    自动化代码更新脚本
    #!bin/bash
    #手动重启tomcat5
    
    tid=$(ps -ef |grep tomcat5 |grep -v grep |awk  '{print $2}')
    
    kill -9 $tid
    
    sh /usr/local/tomcat5/bin/startup.sh
    
    echo `date`  $tid "tomcat5 已重启" >>../reboot.log
    192.168.10.227 tomcat重启脚本

    gitlab设置

    1、创建一个真实项目,从git克隆真实代码过来。

    2、项目--设置---集成,添加jenkins项目地址和token成为一个绑定的Webhooks。

     3、gitlab上用webide模拟一下更新代码,查看jenkins构建状态和10.227tomcat是否构建成功。

     

     

    可以看到成功自动构建,其中还有很多需要优化的地方,如有更好的建议,欢迎大家留言~~~

    4、如果有报jdbc这类jar包无法下载错误,直接拷贝一个jar到相应的目录,因为这类jar无法自动下载成功

    [root@xfg 11.2.0.3]#ls
    ojdbc6-11.2.0.3.jar  ojdbc6-11.2.0.3.jar.lastUpdated  ojdbc6-11.2.0.3.pom.lastUpdated
    [root@xfg 11.2.0.3]#pwd
    /root/.m2/repository/com/oracle/ojdbc6/11.2.0.3

  • 相关阅读:
    horizontal line and right way to code it in html, css
    Inline vs. block-level elements: a demonstration
    How wide is the default `<body>` margin?
    Getting wrong Version from Assembly using Reflection
    Where is the default size of a div element defined or calculated?
    Why padding is included in height sometimes?
    动态分析Android App之动态调试
    学习: Linux的 date 命令
    一个有趣的安全分析场景DSL设计
    Beats Elastic中的Auditbeat使用介绍
  • 原文地址:https://www.cnblogs.com/xiefugui/p/12084617.html
Copyright © 2020-2023  润新知