• gitlab+jenkins自动构建jar包并发布


    一、背景介绍:
      公司软件都是java开发的,一般都会将java代码打包成jar包发布;为了减轻运维部署的工作量,合理偷懒,就需要自动化流程一条龙服务:
    开发将代码提交到gitlab--->jenkins自动触发构建--->jenkins将构建好的jar包提交到远程主机--->jenkins重启java服务--->jenkins验证服务是否起来并反馈(此过程需要运维写验证脚本让jenkins执行)
    二、jenkins配置
    1、安装Gitlab Hook和GitLab插件,安装完成后在构建触发器这会多出一项;记住这个生成的URL会在gitlab中用到;

     1.1、点击Advanced(高级)按钮生成跟giblab交互的token;记住这个token,gitlab上要用到;

      

      这地方注意:
        Allow all branches to trigger this job 允许所有分支触发此作业(默认选项)
        Filter branches by name 按分支名称过滤触发作业
        Filter branches by regex 按正则表达式过滤分支触发
        这地方根据自己的需求去选择,比如只允许某个分支改变则触发作业;

    2、Source Code Management(源码管理)

      

       

    3、Build(构建)

      

    4、安装Publish Over SSH插件,或者在插件管理中直接搜索(Send build artifacts over SSH)也可以

      

      这地方要讲一下,这地方我开了两个Transfers;这个Transfers的作用是在jar包构建完成之后要先做一个动作,将原来的jar包做一个备份,方便出了问题回退;

      Exec command:#脚本很简单就是一个简单的备份

        #!/bin/bash
        . /etc/profile &> /dev/null; . ~/.bash_profile &> /dev/null;
        if [ -f "/data/web/admin-api/admin.jar" ]
        then
          time=`date +%Y-%m-%d-%H:%M`
          cp /data/web/admin-api/admin.jar /data/web/admin-api/srms-admin.jar.$time
        else
          echo "no file"
        fi

      配置第二个Transfers

      

      这地方要注意Source files是两个**号,这是个坑,详情可以点右边的问号有详细解释,这里的两个**表示匹配目录;
          这地方的Exec command就不展示了,需要事先写好放到远端主机主机上;这地方执行必须是绝对路径;
      Remove predix这个地方我之前填的*/target但是我构建的时候控制台提示找不到“eladmin-system/target”然后我就果断把提示中的写到了这个地方;
      Remote directory 这地方要是不写,就要在System configation SSH配置项中定义,两者二选一;我是定义在了Publish over SSH那,所以在上图中没有写,如果两个地方都写了,会目录套目录,最终使jenkins不知道该将文件copy到哪;配置路径(jenkins--->Manage Jenkins--->Configure System--->Publish over SSH),配置完ssh要点一下Test Configuration测试下是否能脸上远端主机;

         

      注意:Manage jenkins--->Configure System--->Gitlab 下图中的配置项需要取消勾选;

      

     三、gitlab配置

      1、打开gitlab网络限制,允许web hook请求过来;

    2、gitlab中具体的项目上配置钩子

    注意是在具体的项目中设置;

    四、通过IDEA提交修改后的代码查看jenkins具体项目的控制台

      代码中随便改点不影响运行的东西,提交测试;

      

    查看gitlab修改后的是否上传:

      

    查看jenkins是否开始构建:

      

    查看jenkins控制台:

      

  • 相关阅读:
    Zend Guard 7 , Zend Guard Loader处理PHP加密
    [转]pHP源码加密方法调查
    使用USB Key(加密狗)实现身份认证
    4*4行列式矩阵键盘
    HDU-2546-饭卡
    HDU-2073-无限的路
    HDU-2065-"红色病毒"问题
    HDU-2063-过山车
    HDU-2060-Snooker
    HDU-2056-Rectangles
  • 原文地址:https://www.cnblogs.com/zhangzhide/p/14098664.html
Copyright © 2020-2023  润新知