一、背景
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
二、业务场景
使用对象:业务项目
使用前提:项目版本管理工具使用Git+Maven
使用阶段:项目开发测试部署全阶段
关联规范:sonar扫描集成、异常码自动加载识别、钉钉构建提醒通知
三、使用介绍
1)创建视图
基础库放在统一的视图类、业务项目建立新的项目视图,最好按品牌商建立视图
视图创建示例:
点击确认后配置页无特殊要求,通用配置即可,点击保存
2)任务创建
点击相应的视图左侧的新建Item,输入项目名,最快速的配置方式就是克隆一个已有的配置的项目,点击保存如下图:
2-1.General
2-1-1.设置描述内容
2-1-2.钉钉配置
勾选钉钉通知,其他暂不需要填写。
2-1-3.勾选Discard old builds
配置构建策略,配置按每天进行构建
2-1-4.勾选This project is parameterized
项目需要参数化构建
2-2.源码管理
勾选Git配置,并配置如下信息
Repository URL(项目Git地址):
Credentials (选择授权) :
配置Branches to build(分支构建),指定分支: $branch 或 ${branch}
再增加指定分支构建,参数为:origin/${gitlabSourceBranch}
分支构建参数效果如下:
2-3.构建触发器
勾选Build when a change is pushed to GitLab(当变更被推到GitLab时进行构建
),记录GitLab webhook地址,并将此地址填写到Gitlab的项目中。
配置启用Gitlab触发器,并勾选4个选项。
登录Gtilab,进入项目的Settings->Integration
将Webhook地址填入URL,并勾选Push events和Tag push events
对配置进行测试
查看jenkins构建历史
2-4.Build(构建命令)
设置pom文件和编译命令。
Root POM: pom.xml
Goals and options:clean deploy -Dmaven.test.skip=true
2-5.Post Steps(发布步骤)
配置Sonars扫描、异常码和readme相关规范配置。
选择Run regardless of build result(编译任何结果都进行处理)
注意:异常码需要修改对应的编码前缀和文件路径。
2-5-1.Sonar配置
点击Add post-build step(编译步骤),选择Execute SonarQube Scanner(Sonar扫描)
设置Analysis properties(属性配置):
sonar.projectKey=${JOB_NAME}
sonar.projectName=${JOB_NAME}
sonar.projectVersion=${BUILD_NUMBER}
sonar.language=java
sonar.java.binaries=${WORKSPACE}/target/classes
sonar.sources=${WORKSPACE}/src
2-5-4.发送Sonar质量报告
#!/bin/bash
sonar_project_id=${JOB_NAME}
dingding_token=****
#参考钉钉文档 https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq
sonarreport=$(curl -s http://ding.project.com/?projectname=${sonar_project_id})
curl -s "https://oapi.dingtalk.com/robot/send?access_token=${dingding_token}" \
-H "Content-Type: application/json" \
-d "{
\"msgtype\": \"markdown\",
\"markdown\": {
\"title\":\"sonar代码质量报告\",
\"text\": \"## sonar代码质量报告: \n
>项目:${JOB_NAME}\n
>分支:${GIT_BRANCH}\n
>报告地址:http://sonar.project.com/dashboard?id=${sonar_project_id} \n
>结果:${sonarreport} \n\"
}
}"
3)构建说明
任务列表页可查看项目的构建时间、状态等,也可以直接手动构建,如下图:
点击立即构建后可在左下角Build History构建历史面板实时查看进度,和构建整个动作日志