本帖最后由 我是楠楠 于 2020-4-30 10:54 编辑
【郑州校区】SpringBoot+GitLab+Docker+Jenkins实现持续集成 四
6.3. 创建Jenkins任务6.3.1. 输入任务名称,选择【构建一个自由风格的软件项目】
6.3.2. 设置GitLab中项目的地址
6.3.3. 添加构建脚本
脚本内容:
[AppleScript] 纯文本查看 复制代码 #!/bin/bash
result=$(docker ps | grep "192.168.25.130:5000/springboot_jenkins01")
if [[ "$result" != "" ]]
then
echo "stop springboot_jenkins01"
docker stop springboot_jenkins01
fi
result1=$(docker ps -a | grep "192.168.25.130:5000/springboot_jenkins01")
if [[ "$result1" != "" ]]
then
echo "rm springboot_jenkins01"
docker rm springboot_jenkins01
fi
result2=$(docker images | grep "192.168.25.130:5000/springboot_jenkins01")
if [[ "$result2" != "" ]]
then
echo "192.168.25.130:5000/springboot_jenkins01:1.0-SNAPSHOT"
docker rmi 192.168.25.130:5000/springboot_jenkins01:1.0-SNAPSHOT
fi
6.3.4. 添加顶层Maven目标
[AppleScript] 纯文本查看 复制代码 clean package -f pom_docker_registry.xml -DskipTests docker:build
6.3.5. 添加Shell执行脚本
脚本内容
[AppleScript] 纯文本查看 复制代码 docker run --name springboot_jenkins01 -p 50101:50101 -idt 192.168.25.130:5000/springboot_jenkins01:1.0-SNAPSHOT
docker logs -f springboot_jenkins01
6.4. 执行任务点击项目的左侧菜单中的【立即构建】,可以观察到下面的日志内容,日志太长,我分段给大家截取:
2.停止并删除之前运行的容器
3.通过Maven构建Docker镜像
4.创建并运行Docker容器
此时在浏览器中访问http://192.168.25.130:28080/quick,可以看到以下页面,这也正是我们最初在本机运行时看到的内容
6.5. 配置钩子 到此为止,我们已经实现了运行Jenkins任务,自动执行GitLab的代码,但是我们还无法实现当GitLab中的代码发生变化时,Jenkins自动构建任务的功能。接下来,我们配置下WebHook,来实现该功能。 6.5.1. 安装GitLab插件
6.5.2. 安装GitLab WebHook插件
6.5.3. Jenkins中配置Build Triggers打开我们在Jenkins的任务进行设置,勾选Build Triggers,选择下面标红的复选框,并且复制其中的超链接。 6.5.4. GitLab配置webhook打开GitLab中我们的项目,点击设置中的Integrations,在URL中填入我们刚刚在Jenkins中粘贴的超链接。 6.5.5. 测试webhook添加完webHook之后,我们点击test按钮,进行推送测试。 观察Jenkins中,会发现Jenkins已经自动执行了该任务。这说明我们的webhook也已经正确配置了。 7. 总结 经过我们多款软件的安装配置,我们逐步掌握了如何上传SpringBoot项目到GitLab中,并使用Jenkins自动构建任务,另外依托于Docker,让这一切变得更加方便,希望大家都多多思考,让机器自动干活,减少我们IT从业人员的重复、繁琐的工作量。
|