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%成功表示太阳。

 

posted @ 2023-06-14 23:05  小粉优化大师  阅读(112)  评论(0编辑  收藏  举报