jenkins-任务构建、与gitlab结合、构建第一个自由项目
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%成功表示太阳。