标签搜索

目 录CONTENT

文章目录

为Jenkins新建一个Pipline工作流(流水线)并整合cpplint

陈铭
2021-07-29 / 0 评论 / 0 点赞 / 537 阅读 / 550 字 / 正在检测是否收录...

配置环境

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。最后在最下面可以生成记录
image

image

编写 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看到所有的输出,还有统计结果
image

Pipline脚本语法

所有的语法可以看官方手册

0

评论区