一、准备Jenkins环境

首先要有一个正常可用的Jenkins,这里不再赘述Jenkins环境的搭建,默认已有Jenkins环境。

docker 部署 Jenkins 可参考之前的文章:使用Docker安装Jenkins

二、安装gitlab插件

持续部署的第一步需要检查是否安装gitlab插件: gitlab hook插件 和 gitlab插件

  1. 点击 系统管理(Manage jenkins)–插件管理
    在这里插入图片描述
  2. 可以看到 我这里已经安装过了,如果没有安装,可以直接在可选插件标签里面搜gitlab,按照提示安装对应的插件。

在这里插入图片描述

三、新建构建任务

1. 新建maven构建任务

点击左侧菜单栏的新建任务,创建第一个任务: Test_Job
在这里插入图片描述

2. 源码管理

这里创建一个自动构建maven项目的任务。源码管理这里选择的git,配置上自己的仓库,如果没有Credentials令牌,可以点击后面的添加,添加有拉取代码权限的账号。

在这里插入图片描述

3. 配置触发器

在这里插入图片描述
触发器可以灵活配置:
在这里插入图片描述

Allowed branches :
Allow all branches to trigger this job #允许所有分支触发此作业
Filter branches by name #按名称过滤分支
Include :dev #允许触发构建的分支,dev 分支提交会自动构建
Exclude:master #排除触发构建的分支,此时 master 分支提交不会自动构建
Filter branches by regex #通过正则表达式过滤分支
Source Branch Regex: #源分支正则表达式
Target Branch Regex:.*dev #目标分支正则表达式,允许触发构建的 dev 分支
Filter merge request by label #按标签过滤合并请求
Include: #允许触发构建的标签
Exclude: #排除触发自动构建的标签

在这里插入图片描述
这里可以根据需要设置触发的分支。我这里选择develop, 然后点击Generate 生成 token。

4. 设置构建过程

这里设置构建前执行shell 配置jdk环境变量,这里可以根据需要设置构建前的步骤。
在这里插入图片描述
配置 POM位置和构建的命令:
在这里插入图片描述
我这里的配置maven构建命令是这样,根据自己的项目配置,设置maven构建命令。

5. 设置构建之后的操作

这里使用将打包好的文件:cavd-web-server-2.0.tar.gz,上传至部署的服务器:192.168.104.103
在这里插入图片描述
说明:
这里选择了 Run only if build succeeds 表示仅在构建成功后运行此步骤。

  • Source files 构建完成的文件,这里的位置需要对Jenkins来说是可见的,否则找不到该文件,是不行的。
  • Remote directory 表示上传至远程文件夹的位置。
  • Exec command 是直接在控制台执行的命令。这里是针对Jenkins内部的,不是远程服务器。

保存后,去gitlab上配置触发器。

四、gitlab 配置触发器 webhooks

在这里插入图片描述
在这里插入图片描述
点击下面的 Add webhook 新增。Project Hooks表示添加成功。
在这里插入图片描述
然后点击Test、这里我选择Push events进行测试验证一下,可以看到页面会自动发起触发器请求,正常会显示:Hook executed successfully: HTTP 200 状态码是200 表示请求成功。
在这里插入图片描述
由于我这里gitLab到Jenkins的网络暂时是不通的,导致点击测试后,提示:Hook execution failed: execution expired
在这里插入图片描述
这里提示:Hook execution failed: execution expired,点击 Edit 可以进去看到具体的webhook日志

在这里插入图片描述
其中:Request details可以看到具体的请求内容。

这里可以使用postman 工具测试下,看下请求的响应是什么。是否是网络不通的原因,还是Jenkins配置的原因。

可以看到 使用postman请求,响应码是200,但是没有触发构建任务。
在这里插入图片描述
然后查了下,这个触发的URL 貌似应该这样写:http://<jenkisn的IP地址和端口>/gitlab/build_now/<jenkins的job名称>
例如jenkins的IP地址为192.168.104.51:9999,job名称是Test_Job,那么该URL为http://192.168.104.51:9999/gitlab/build_now/Test_Job
所以我直接将ip地址改为jenkins的ip地址,重新获取token,再次点击测试 出现http 200,表示成功
在这里插入图片描述

看了下Jenkins 也正常开始构建了。
在这里插入图片描述
然后可以看到,控制台输出为:push触发。
在这里插入图片描述
至此,一个最简单的gitlab触发Jenkins任务构建,就完成了。这里触发之后的构建内容可以根据自己的需要在Jenkins上面灵活配置。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐