当前位置: 首页 > article >正文

Jenkins + Gitlab 实现项目自动化构建及部署

通俗来讲就是本地项目 push 到 gitlab 后, Jenkins 能够识别到项目的更新并自动构建部署;
 本文以实际操作的方式来表述详细配置过程及避开配置 Jenkins 时的坑. 默认电脑已经安装了虚拟机, 默认gitlab 上已经有了你想要部署的项目, 部署了 maven 和 jdk 并配置了环境变量!!!

Jenkins + Gitlab

  • 第一步: 检查环境
  • 第二步: 下载 jenkins 镜像并部署
  • 第三步: 启动成功后, 配置 jdk / git / maven
  • 第四步: 新建一个 item; 如果你的项目是一个 maven 项目可以如下选择
  • 第五步: 项目跑起来, 可以收到短信通知

第一步: 检查环境


1 执行指令 java -version 检查是否已安装了 java 环境:

在这里插入图片描述

2 执行指令 mvn -v 检查是否已经安装了 maven:

在这里插入图片描述

3 执行指令 echo $JAVA_HOME 检查 java 环境变量是否已经配置好, 这里的地址后面会用到:
在这里插入图片描述

4 执行指令 echo $MAVEN_HOME 检查 maven 环境变量是否已经配置好, 这里的地址后面也会用到:
在这里插入图片描述

5 虚拟机也要安装 git, 执行指令 which git 查看位置, 后面会用到;

在这里插入图片描述

第二步: 下载 jenkins 镜像并部署


1 需要注意如果是 jdk 8 需要下载对应 jdk 8 对应的版本,链接: 🔗下载地址, 提交到虚拟机:

在这里插入图片描述

2 执行指令 rpm -ivh jenkins-2.346.3-1.1.noarch.rpm 部署 jenkins;

3 执行指令 find / -name jenkins 检查是否已经安装成功:

在这里插入图片描述

4 配置一下端口号, 指令: vi /usr/lib/systemd/system/jenkins.service, 修改如下:

在这里插入图片描述
这里我改成了 8090;

5 重新加载配置文件, 指令: systemctl daemon-reload.

6 启动指令: systemctl start jenkins; 重新启动指令: systemctl restart jenkins; 停止指令: systemctl stop jenkins.

7 启动成功后, 初次登录要输入管理员密码, 指令: cat /var/lib/jenkins/secrets/initialAdminPassword.
在这里插入图片描述

第三步: 启动成功后, 配置 jdk / git / maven


在这里插入图片描述

1 配置 jdk: 别名可以随便写, JAVA_HOME 就是虚拟机 java 的环境变量, 前面有指令;

在这里插入图片描述

2 配置 git;

在这里插入图片描述

3 配置 maven, 地址就是虚拟机 maven 环境变量的地址;

在这里插入图片描述

第四步: 新建一个 item; 如果你的项目是一个 maven 项目可以如下选择


在这里插入图片描述

对项目进行配置:

在这里插入图片描述

1 建议限制构建项目的缓存记录, 否则构建记录多了后会导致空间不足, 这里我设置的是两天会自动清理缓存, 构建记录不会超过 5 个;

在这里插入图片描述

2 git 源码管理进行配置:

在这里插入图片描述

如果报以下错误需要在 url 链接加上您的 gitlab 用户名和密码, 格式为 http://用户名:密码@*******.54:7000/Li/yuan.git

在这里插入图片描述
添加 Credentials 证书凭证, 用户名和密码就是 gitlab 的账号和密码;
在这里插入图片描述

查看 gitlab 上项目分支, 我的是 main:
在这里插入图片描述

3 构建触发器

在这里插入图片描述

格式:

每天凌晨3:00 跑一次: H 3 * * *
每隔5分钟构建一次: H/5 * * * *
每五小时构建一次: H H/5 * * *
每天中午12点定时构建一次: H 12 * * *
每天下午 17点前 定时构建一次: H 17 * * *
每15分钟构建一次: H/15 * * * *

4 编写执行脚本; 可以当做模板来写, 只不过需要修改以下信息:
在这里插入图片描述
这三处的信息可以查看虚拟机上的信息直接复制过来即可, 操作如下:
在这里插入图片描述
进入到此目录下, 这里的 JAR_NAME 就是 target 目录下包的名称, 如果没有此包的话可以先在虚拟机上跑一下, 这样地址等信息可以直接复制过来, 方便至极!!!
在这里插入图片描述

5 修改 pom 文件; 这个路径就是上面 workspace 中项目中的 pom.xml 文件路径, 直接从虚拟机上拷贝过来路径即可;
在这里插入图片描述
6 配置邮箱通知;
在这里插入图片描述
配置邮箱时可能出现的问题及解决办法:

Default Recipients

  • 通过Manage Jenkins进入Configure System
  • 查看Default Recipients这一栏是否填写了收件人

Project Recipient List

  • 进入具体的Job
  • 查看Post-build Actions里有没有添加Editable Email Notification这个功能
  • 不要勾选Disable Extended Email Publisher这个选项栏
  • 查看Project Recipient List这一栏有没有填写收件人

Recipient List

  • 还是进入Editable Email Notification这一栏
  • 点击进入右下角Advanced Settings…
  • 查看Triggers这一栏有没有设置对应触发条件,比如Failure-Any和Success
  • 默认的Developers不会发送给收件人,需要选择Recipient List.

第五步: 项目跑起来, 可以收到短信通知

在这里插入图片描述


http://www.kler.cn/news/16658.html

相关文章:

  • 你真的会跟 ChatGPT 聊天吗?(上)
  • 业务维度digest日志的记录与监控方案
  • 零入门kubernetes网络实战-30->基于bridge+veth pair+DNAT技术来实现外网可以访问内网的方案
  • Nginx—在linux的ubuntu系统上的安装使用
  • 协同过滤算法深入解析:构建智能推荐系统的核心技术
  • Leetcode力扣秋招刷题路-0902
  • 一招解决ChatGPT对话经常中断问题:KeepChatGPT插件
  • Window 10 环境下用 OpenVINO 2022.3部署yolov5 7.0
  • 爬虫大全:从零开始学习爬虫的基础知识
  • 【每日一题】
  • ubuntu 安装 notepad++,显示中文菜单,并解决中文乱码问题
  • vue 高德地图 —— 点标记、信息弹窗、网页导航、获取经纬度及当前城市信息
  • 正则表达式学习笔记
  • Android内存优化场景
  • 01-环境搭建 尚筹网
  • Java异步编程
  • 【MySQL】交叉连接、自然连接和内连接查询
  • 普通人,自学编程,5个必备步骤
  • SQL注入攻防入门详解
  • 剑指 Offer :001整数除法
  • C++基础demo(C++入门基础案例)
  • QwtPlotCurve使用说明
  • Java文件流技术:从流式编程到文件IO操作完全指南
  • 学计算机的要不要考研?校招工作不喜欢怎么办?怎样才可以年薪百万?
  • 基于R语言的贝叶斯时空数据模型实践技术
  • SpringBoot中有几种定义Bean的方式?
  • 权限提升:Mysql 数据库 .(UDF || 启动项 || 反弹)
  • Midjourney 创建私人画图机器人,共享账号如何设置独立绘画服务器(保姆级教程)
  • 【学习笔记】「JOISC 2022 Day3」洒水器
  • 【数学建模】Day01——层次分析法