【云原生 • DevOps】一文掌握持续集成工具 Jenkins_云上 持续集成工具-程序员宅基地

技术标签: 云原生  devops  云原生/云计算 - 入门到实战  jenkins  开发工具/开发语言  云计算  

目录

一、持续集成工具 Jenkins 介绍

1. 什么是持续集成

2. Jenkins 介绍

二、Jenkins 的安装与部署

1. 安装 Jenkins

2. 本地访问 Jenkins

3. 插件的安装

4. 卸载 Jenkins

三、Jenkins 全局配置

1. Git 的安装与配置

2. JDK 的安装与配置

3. maven 的安装与配置

三、将代码上传至 Git 服务器

1. Gogs 的搭建与配置

2. 将本地代码上传至 Gogs 的仓库

四、任务的创建与执行


一、持续集成工具 Jenkins 介绍

1. 什么是持续集成

持续集成(Continuous Integration,CI)。随着软件开发复杂度的不断提高,如何更好的协同开发以确保软件开发质量已经成为了开发团队所追求的目标,特别是近年来 “敏捷开发” 在互联网领域的兴起,如何能够在不断变化的需求中快速适应和保证开发质量显得尤为重要。

持续集成就是针对这类问题的一种软件开发实践,倡导团队必须经常集成他们的工作,而每次的集成都是通过自动化的构建来验证的,包括自动编译、发布、测试,从而更快发现集成错误,让团队更快的开发内聚的软件。

持续集成具有以下特点:

  • 是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试,再到结果记录、测试统计等都是自动完成,无需人工干预
  • 需要有专门的集成服务器来执行集成构建
  • 需要有代码托管工具支持

持续集成的出现,保证开发团队交代码的质量,减轻了软件发布时的压力;其次就是全程自动完成,无需太多人工干预,极大的减少了重复的过程,节省了时间、工作量和成本。

2. Jenkins 介绍

Jenkins 原名 Hudson,2011 年修改为 Jenkins,它是一个开源的实现软件持续集成的工具。官网地址如下(也有中文网址):

JenkinsJenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their softwarehttps://www.jenkins.io/

Jenkins 能实时监控集成中存在的错误,提供详细的日志文件和提醒功能,还可以用图表的形式形象的展示项目构建的趋势和稳定性。

Jenkins 具有以下特点:

  • 易安装:官网下载直接运行
  • 易配置:提供了友好的 GUI 配置界面
  • 变更支持:能从代码仓库中获取并产生代码更新列表,输出到编译输出信息
  • 支持永久链接:用户是通过 Web 来访问 Jenkins 的,而这些 Web 界面的链接地址是永久的,可在任何文档中直接使用
  • 集成 E-mail/RSS/IM
  • JUnit/Test NG 测试报告:以图表形式提供测试报告
  • 文件指纹信息:会保存哪次集成构建产生了哪些 jars 文件,哪次集成使用了哪个版本的 jars 文件等记录
  • 支持第三方插件

二、Jenkins 的安装与部署

1. 安装 Jenkins

第一步,下载 Jenkins 安装包,打开Jenkins 官方文档

点击 “Installing Jenkins”,可以看到可供下载的各个版本;

选择 Linux(演示虚拟机为 CentOS 系统)下的 CentOS 系统;

可以看到官方提供的在线安装方式;

打开 Xhell 并连接虚拟机/服务器,按照以下步骤进行下载;

# 下载镜像
wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo

# 安装
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

# 更新
yum upgrade
 
# 安装 Java 环境
yum install java-11-openjdk

#安装 Jenkins
yum install jenkins

2. 本地访问 Jenkins

Jenkins 安装完成之后,就可以使用 虚拟机/服务器IP:端口 在本地进行访问了,初始界面如下;

根据提示密码存于 /var/lib/jenkins/secrets/initialAdminPassword 目录中;

输入密码后进入如下界面;

我们选择安装推荐的插件,Jenkins 便会开始自动下载安装,如下正在安装;

安装完成后,创建我们的第一个用户;

进入 Jenkins 主页如下;

3. 插件的安装

使用推荐安装方式只能帮我们安装一部分最为常用的插件,有某些插件如 maven 等还是需要我们手动去安装的。

点击 “系统管理” --> “插件管理”;

在这里可以看到我们需要的插件,按需下载即可;

4. 卸载 Jenkins

# rpm卸载Jenkins
rpm -e jenkins

# 检查是否卸载成功
rpm -ql jenkins

# 彻底删除残留文件
find / -iname jenkins | xargs -n 1000 rm -rf

三、Jenkins 全局配置

全局配置的目的在于告诉 Jenkins 各种工具的路径在何处,使得 Jenkins 能够通过插件来调用这些软件。我们这里均采用下载压缩包然后上传虚拟机/服务器的方式进行演示。

点击“系统管理” --> “全局配置”,可以看到需要配置的插件,需要配置的有 jdk、git、maven 工具;

1. Git 的安装与配置

(直接使用 yum 命令安装虽然更为简单但版本会很低,为防止今后报错所以推荐此方式安装) 

首先下载 git 压缩包并上传至虚拟机/服务器;

按照以下步骤进行操作;

#1.解压压缩包
tar -zxvf git-2.27.0.tar.gz

#2.在Linux系统中是需要编译源码的,首先下载所需要的依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

#3.卸载旧版本的 git(安装依赖是会自动安装 git,所以需要卸载旧版本)
yum -y remove git

#4.进入解压后的文件夹
cd git-2.27.0

#5.编译git源码
make prefix=/usr/local/git all

#6.安装git至/usr/local/git路径
make prefix=/usr/local/git install

#7.配置环境变量
vi /etc/profile 
在底部加上该行代码:export PATH=$PATH:/usr/local/git/bin

#8.配置完成后刷新环境变量
source /etc/profile

操作完成之后使用命令 git --version 查看 git 版本,如下 2.27 版本安装成功;

[root@192 git-2.27.0]# git --version
git version 2.27.0

此时我们查看一下 git 路径 which git

[root@192 git-2.27.0]# which git
/usr/local/git/bin/git

使用该路径设置全局配置;

2. JDK 的安装与配置

下载一个 jdk 的 rpm 包并上传至虚拟机/服务器;

然后使用命令 rpm -ivh jdk-8u171-linux-x64.rpm 进行安装;

安装后的根目录为 /usr/java/jdk1.8.0_171-amd64;

使用此路径设置全局;

3. maven 的安装与配置

下载 apache-maven .tar.gz 包并上传至虚拟机/服务器;

解压压缩文件;

使用此路径及解压后的文件名设置全局;

全部配置完成之后,点击保存、点击应用。

三、将代码上传至 Git 服务器

1. Gogs 的搭建与配置

Gogs 是一款极易搭建的自助 Git 服务,它的目标在于打造一个最简单、快速和轻松的方式搭建 Git 服务。使用 Go 语言开发的它能够通过独立的二进制进行分发,支持了 Go 语言支持的所有平台,包括 Linux、Mac OS、Windows 以及 arm 平台。与传统 Git 相比它最大的优势在于拥有图形化界面

第一步:下载镜像 docker pull gogs/gogs

[root@192 ~]# docker pull gogs/gogs
Using default tag: latest
latest: Pulling from gogs/gogs
97518928ae5f: Pull complete 
d20a5437c0b4: Pull complete 
ec9934e62f5f: Pull complete 
2a880a4f6876: Pull complete 
7bb13647629b: Pull complete 
641b202f48eb: Pull complete 
8f12f9a5cd7d: Pull complete 
Digest: sha256:fbae7c126411d3fa3f8fdca17a65b196887ab23e3b7375f682a13daf5806bb19
Status: Downloaded newer image for gogs/gogs:latest
docker.io/gogs/gogs:latest
[root@192 ~]# 

第二步:创建 Gogs 容器 docker run -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs

# 容器名称 gogs

# 端口映射,22 端口映射为 10022,3000 端口映射为 3000

[root@192 ~]# docker run -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs
3af9726ff2d9430be43f7f3d78c206b9a53d356347e8a92c23316a7d2e6533f8
[root@192 ~]# 

第三步:在本地浏览器进行访问,初始界面如下; 

此处选择数据库类型为 SQLite3

修改域名为 192.168.200.129

修改应用 URL 为 http://192.168.200.129:3000/

随后点击“立即安装”,Gogs 安装与配置完成;

2. 将本地代码上传至 Gogs 的仓库

首先我们创建一个仓库;

创建成功后就可以将代码上传至仓库了;

这里我使用 idea(本地 git 环境已搭建,这里不再赘述)以及一个示例项目演示上传操作;

选中项目,右键点击 “file” --> “git” --> “Repository” --> “Reomtes”;

接下来增加远程地址,也就是我们 Gogs 远程仓库的地址;

此时就可以进行代码上传了,先点击 “Git” --> “Add”,将项目上传至暂存区;

选择 “git” --> “Repository” --> “push” 进行推送;

输入用户名和密码登录 Gogs 后即可推送成功;

此时再次查看 Gogs 中的仓库,可以看到项目已上传至 Gogs 仓库;

代码上传至 Git 演示成功。

四、任务的创建与执行

登入 Jenkins,点击 “新建 Item”,输入任务名称并选择“构建一个maven项目”;

点击“确定”,之后我们作出如下配置;

项目描述

源码管理

build

配置完成,点击保存,项目即创建完成; 

返回面板,点击按钮执行此任务;

此操作相当于我们将项目文件的执行过程拿到了 Jenkins 系统当中。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_53072519/article/details/125662774

智能推荐

前端开发之vue-grid-layout的使用和实例-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout

Power Apps-上传附件控件_powerapps点击按钮上传附件-程序员宅基地

文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件

C++ 面向对象(Object-Oriented)的特征 & 构造函数& 析构函数_"object(cnofd[\"ofdrender\"])十条"-程序员宅基地

文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"

修改node_modules源码,并保存,使用patch-package打补丁,git提交代码后,所有人可以用到修改后的_修改 node_modules-程序员宅基地

文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules

【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure-程序员宅基地

文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure

整理5个优秀的微信小程序开源项目_微信小程序开源模板-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板

随便推点

Centos7最简搭建NFS服务器_centos7 搭建nfs server-程序员宅基地

文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server

Springboot整合Mybatis-Plus使用总结(mybatis 坑补充)_mybaitis-plus ruledataobjectattributemapper' and '-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d

EECE 1080C / Programming for ECESummer 2022 Laboratory 4: Global Functions Practice_eece1080c-程序员宅基地

文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c

洛谷p4777 【模板】扩展中国剩余定理-程序员宅基地

文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...

android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...-程序员宅基地

文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy

SylixOS快问快答_select函数 导致堆栈溢出 sylixos-程序员宅基地

文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos

推荐文章

热门文章

相关标签