1、准备工作
1.1、配置好jenkins服务器与gitlab服务器的sshkey认证
1.1.1、jenkins创建公钥与密钥
ssh-keygen -t rsa -b 2048 -C "root@localhost"
1.1.2、jenkins增加ssh密钥


1.1.3、将jenkins的系统公钥增加到gitlab项目中


1.2、jenkins的系统安装git
apt install git -y
# git -v
git version 2.39.2
1.3、jenkins需要安装gitlab插件


2、创建一个自由风格
2.1、创建my-tomcat项目构建

2.2、在jenkins主机上,测试是否能连通gitlab项目
git ls-remote -h -- git@192.168.10.10:web/my-tomcat.git
2.3、jenkins配置git
# 因为我使用是gitlab主分支是main,所以要修改一下

2.4、保存后,立执行构建
结果显示:在左侧栏的最下面的"Build History"下面多了一个构建记录 "#1"

2.5、查看控制台输出

结果显示:我们可以在该界面看到,该任务的详细执行效果,里面记录了任务中所有命令的执行流程及该任务的状态记录

3、任务解析
3.1、说明
通过刚才的构建历史记录,我们知道了一个jenkins的job任务执行,都会在jenkins的服务器里面的工作路径中创建一个与job名称一致的目录,格式是 "$JENKINS_HOME/workspace/JOB_NAME"
# 日志输出
Building in workspace /root/.jenkins/workspace/my-tomcat
3.2、检查目录
3.2.1、进入目录检查
# cd /root/.jenkins/workspace/my-tomcat
root@localhost:~/.jenkins/workspace/my-tomcat# ll
drwxr-xr-x 8 root root 4096 Jun 14 20:50 .git/
-rw-r--r-- 1 root root 6192 Jun 14 20:50 README.md
-rw-r--r-- 1 root root 13 Jun 14 20:50 hello.out
3.2.2、查看git配置信息
root@localhost:~/.jenkins/workspace/my-tomcat# git config --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.hookspath=/dev/null
remote.origin.url=git@192.168.10.10:web/my-tomcat.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
3.2.3、查看jobs目录
# tree /root/.jenkins/jobs/my-tomcat/
/root/.jenkins/jobs/my-tomcat/
├── builds
│ ├── 1
│ │ ├── build.xml
│ │ ├── changelog.xml
│ │ └── log
│ ├── legacyIds
│ └── permalinks
├── config.xml
└── nextBuildNumber
jenkins所有的任务都是在 $JENKINS_HOME/jobs/ 目录下以任务名称创建专用目录
每个任务都有自己的配置文件,任务在构建后,都会在builds目录下创建以历史记录为名的目录,在目录中会有配套的日志记录、配置记录、更改记录。
从这个方面我们可以了解到,配置记录的追踪功能在jenkins内部是一个非常重要的功能。
3.3、配置文件解析
3.3.1、config.xml
# cat /root/.jenkins/jobs/my-tomcat/config.xml
<?xml version='1.1' encoding='UTF-8'?>
...
<scm class="hudson.plugins.git.GitSCM" plugin="git@5.0.2">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>git@192.168.10.10:web/my-tomcat.git</url>
<credentialsId>6dd178a7-9f06-4a5c-a825-093fbc5e5482</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>*/main</name>
</hudson.plugins.git.BranchSpec>
</branches>
...
3.3.2、build.xml
# cat /root/.jenkins/jobs/my-tomcat/builds/1/build.xml
<?xml version='1.1' encoding='UTF-8'?>
...
<remoteUrls>
<string>git@192.168.10.10:web/my-tomcat.git</string>
</remoteUrls>
...
3.4、构建解析
3.4.1、点击jenkins图标,回到任务列表

3.4.2、点击任务列表中的"my-tomcat"下拉框的"configure"

3.4.3、配置项介绍

一个标准的构建任务配置,主要有六部分组成,这六部分的作用分别是:
属性 解析
全局配置(General) 项目基本配置,项目名字,描述,参数,禁用项目,并发构建,限制构建默认node等
源代码管理(Source code managemet) 源代码仓库配置信息,支持Git,Subversion等
触发构建(Build Triggers) 构建触发方式,包含周期性构建,poll scm,远程脚本触发构建,其他项目构建结束后触发等
构建环境(Build Environment) 构建环境相关设置,构建前删除工作空间,输出信息添加时间戳,设置构建名称,插入环境变量等
执行构建(Build) 设置项目构建任务的执行方式、种类等,具体的执行信息
构建后行为(Post-build Actions) Artifact归档,邮件通知,发布单元测试报告,触发下游项目等
3.4.4、构建状态

Jenkins会基于一些后处理器任务为构建发布一个稳健指数(从0-100),这些任务一般以插件的方式实现。
而评分部分主要是基于单元测试(JUnit)、覆盖率(Cobertura )和静态代码分析(FindBugs)等对我们的项目代码进行综合评分,分数越高,表明构建后的项目越稳定。
晴雨表主要是针对一个任务的整体执行成功比例来算的。80%成功表示太阳。