一、背景介绍:
  公司软件都是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控制台:

  

gitlab+jenkins自动构建jar包并发布的更多相关文章

  1. Linux+Jenkins自动构建服务器包

    何时使用: 测试过程中我们需要持续构建一个软件项目,为避免重复的手动下载.解压操作,我们需要搭建一个能够自动构建的测试环境,当代码有更新时,测试人员只需点一下[构建]即可拉取最新的代码进行测试(也可设 ...

  2. gitlab jenkins 自动构建

    工作中有这样一种需求: 每次提交代码之后,都自动执行 单元测试脚本,进行单元测试 jenkins监听项目的某个分支,设置运行脚本,设置一个url作为回调 利用gitlab的钩子,在每次有提交之后,触发 ...

  3. 小伙伴想学Jenkins自动构建发布项目,我:安排上了!!

    写在前面 趁着十一长假,很多小伙伴都在悄悄学习,有些是为了能够顺利通过面试,进入大厂升职加薪.有些则是为了进一步巩固和提高自己的专业技能,希望有朝一日能过成为互联网架构师乃至技术专家.这不,就有小伙伴 ...

  4. Gitlab使用Webhook实现Push代码后的jenkins自动构建

    本文出自https://www.cnblogs.com/kevingrace/p/6479813.html 怕以后找不到,所以先写到自己博客中 Gitlab利用Webhook实现Push代码后的jen ...

  5. Gitlab源码库里代码提交后,如何触发jenkins自动构建?

    版本库里代码提交后,如何触发jenkins自动构建?这是一个面试题,感觉自己回答的并不好,因为并没有用过这个功能,之前公司实际项目用的是svn版本管理,一般都用立刻构建,和定时任务构建(不管代码是否有 ...

  6. 构建Maven项目自动下载jar包

    使用Maven 自动下载jar包 右键单击项目,将项目 转换成Maven 项目 然后进去Maven官网 http://mvnrepository.com/ 这里有大量的jar包供我们使用,比如我现在要 ...

  7. 【转】构建Maven项目自动下载jar包

    原文地址:https://blog.csdn.net/gfd54gd5f46/article/details/54973954 使用Maven 自动下载jar包 右键单击项目,将项目 转换成Maven ...

  8. 实战:向GitHub提交代码时触发Jenkins自动构建

    当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建 ...

  9. DEVOPS技术实践_02:jenkins自动构建项目

    一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...

随机推荐

  1. Azure DevOps (十二) 通过Azure Devops部署一个SpringBoot应用

    文章配套视频专栏: https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536 视频正在努力更新. 上一篇文章中,我们通过 ...

  2. asp.net swagger的使用

    最近要从其他系统获取一些数据,准备写个接口让别人把数据塞进来,顺便学习一下如何使用Swagger. 参考大神的教程:asp.net  https://mp.weixin.qq.com/s/SHNNQo ...

  3. 在SpringBoot中使用logback优化异常堆栈的输出

    一.背景 在我们在编写程序的过程中,无法保证自己的代码不抛出异常.当我们抛出异常的时候,通常会将整个异常堆栈的信息使用日志记录下来.通常一整个异常堆栈的信息是比较多的,而且存在一些没用的信息.那么我们 ...

  4. Idea之常用插件

    效率提升 Jrebel 热部署插件,修改代码编译就生效,节省大量重启服务时间.热部署支持修改方法代码,方法定义,类定义,接口定义(包括swagger文档),修改资源文件,修改mapper.xml(需配 ...

  5. Fail2ban 配置详解 动作配置

    ### # 包含配置 ### [INCLUDES] before = iptables-common.conf ### # 定义动作 ### [Definition] actionstart = &l ...

  6. STM32 CubeMx使用教程

    一.STM32CubeMX 简介 STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以 ...

  7. 实验一:在FW上配置静态路由实现互通

    实验:在FW上配置静态路由实现互通 网络拓扑图 一.配置步骤 1.配置IP地址 R1: FW: ISP:       2.配置路由 ①在R2上面配置静态路由 ②在ISP上面配置静态路由 3.在FW上配 ...

  8. 2020.09.12【NOIP提高组&普及组】模拟赛C组 总结

    总结:这次比赛成绩并不理想,虽然策略得当 \(P.S.\):太多题有多组数据,但是样例只有一个数据 各题题解和改题情况 T1 匹配 题面 描述 给你一个由{a,b-z,A,B-.Z}组成的字符串,我们 ...

  9. Linux查看日志文件写入速度的4种方法

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 有时,我们需要查看某个文件的增长速度,如日志文件,以此来感受系统的负载情况,因为一般情况下,日志写入越快,说明系统 ...

  10. JMeter - 生成随机数/随机字符串/随机变量/随机日期

    1. Random - 随机数 1.1 作用 1.2 声明 1.3 例子 2. __RandomDate - 随机日期 2.1 作用 2.2 声明参数 2.3 例子 3. RandomString - ...