配置环境
cpplint.py
我们在运行流水线时是让Jenkins所在的容器去做的,其中会用到一些命令和脚本(cpplint.py)。所以首先我们必须保证容器内的环境有python,也有cpplint.py。配置工作比较简单,就不多赘述了。
安装Warnings Next Generation Plugin插件
该插件可以收集构建时代码检查输出的错误信息,并生成可视化的报告。
配置Pipline
查询cpplint插件对应的Pipline Script语法
在Pipline页面的流水线语法中选择recordlssues: Record compiler warnings and static analysis results,并选择C++Lint。最后在最下面可以生成记录
编写 Pipline Script
我们在配置页面的Pipline Script写上:
pipeline {
# 任何节点都可以选择去执行工作流
agent any
# 执行Pipline前需要定义参数
parameters {
string(name: 'GIT_URL', defaultValue: '', description: '请输入GIT仓库地址')
}
stages {
# 定义第一个步骤GIT_PULL,也就是拉代码
stage('GIT_PULL') {
steps {
# steps定义该步骤具体工作
# 输出说明
echo 'start to pull code'
# 拉代码
sh 'git clone "${GIT_URL}"'
}
}
# 定义第二个步骤CPPLINT,检查代码
stage('CPPLINT') {
steps {
# 输出说明
echo 'start to c++ style check'
# 检查代码并将标准错误流重定向至xml文件
# cpplint的结果输出到xml文件
sh "python /cpplint.py --recursive . 2>cpplint.xml"
}
}
}
# post定义上述工作完成后的后续任务,支持多种情况的post,always指的是不管之前流水线运行什么情况都会执行。
post {
always {
echo 'finish and clean workspace'
# 记录输出的日志
recordIssues aggregatingResults: true, enabledForFailure: true, tools: [cppLint(name: 'cpplint', pattern: '*.xml', reportEncoding: 'UTF-8')]
# 清除当前的工作目录
sh "rm -rf *"
}
}
}
测试
我们在Pipline页面点击Build with Parameters,因为我们配置了定义参数,所以首先我们要填一下要拉的git仓库,然后会继续执行GIT_PULL步骤,然后执行CPPLINT步骤进行代码检查。
最后可以在cpplint warning看到所有的输出,还有统计结果
Pipline脚本语法
所有的语法可以看官方手册
评论区