Jenkins + pipeline SonarQube task ‘AX8z8yYQBX52uSHGbNy6‘ status is ‘IN_PROGRESS‘

本文主要是介绍Jenkins + pipeline SonarQube task ‘AX8z8yYQBX52uSHGbNy6‘ status is ‘IN_PROGRESS‘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.在使用pipeline 来实现Sonarqube自动化代码检测获取质检状态时,一直等不到‘OK’的状态,如下图所示,一开始的执行代码和运行的截图,等待一会之后报超时错误

script {timeout(1) {//这里设置超时时间1分钟,如果Sonar Webhook失败,不会出现一直卡在检查状态//利用Sonar webhook功能通知pipeline代码检测结果,未通过质量阈,pipeline将会faildef qg = waitForQualityGate('SonarQube')//注意:这里waitForQualityGate()中的参数也要与之前SonarQube servers中Name的配置相同if (qg.status != 'OK') {error "未通过Sonarqube的代码质量阈检查,请及时修改!failure: ${qg.status}"}}}


 

 

2.后来反复查看很久,检查了SonarQube的webhook,Jenkins里面配置的Sonarqube服务端和SonarScanner,都没啥问题,最后在 Stack Overflow 的帖子里面,发现这是一个 SonarQube 的bug, 解决方案是在 Sonar Qube状态确认前,先让 SonarQube 跑一会儿,确保 SonarQube Task 成功运行状态。

3.下面时修改后的jenkinsfile脚本和运行截图

script {Integer waitSeconds = 10Integer timeOutMinutes = 10Integer maxRetry = (timeOutMinutes * 60) / waitSeconds as Integer//  未通过代码检查,中断for (Integer i = 0; i < maxRetry; i++) {try {timeout(time: waitSeconds, unit: 'SECONDS') {//利用sonar webhook功能通知pipeline代码检测结果,未通过质量阈,pipeline将会faildef qg = waitForQualityGate()echo "${qg.status}"if (qg.status != 'OK') {error "Sonar quality gate status: ${qg.status}"} else {i = maxRetry}}} catch (Throwable e) {if (i == maxRetry - 1) {throw e}}}}

 

从上面的运行截图可以看到,在第一次获取状态到最后一次成功获取状态中间等待了几十秒钟,所以这中间的时间有个不确定性,不是大家写的不对,是等待的时间不够长,导致了超时

这篇关于Jenkins + pipeline SonarQube task ‘AX8z8yYQBX52uSHGbNy6‘ status is ‘IN_PROGRESS‘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/478054

相关文章

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置版本号生成 打开项目配置页面。在下方找到 “Build Env

Jenkins自动构建部署项目

1. 楔子 在实际开发中,经常需要编译、静态代码检查、自动化测试、打包、部署、启动等一连串重复机械的动作,浪费时间、而且容易出错,而Jenkins就是专门Continuous integration(CI)/ Continuous Deploy(CD)开源工具,本文简单介绍Jenkins的使用。 在线无安装免费试用Jenkins:http://www.jenkins.org.cn/test

jenkins--节点的简单配置

添加节点 准备:在master上安装插件SSH 插件 Master即部署jenkins的机器,master通过网络向节点机器发布构建命令。 添加节点,需要一台独立的机器,可以是windows​机器或linux机器或虚拟机都可以。 ​配置节点: 在Manage Jenkins中打开Manage Nodes: 添加节点步骤–安装JDK(在linux上安装) 检查是否安装过JDK yum

Jenkins--pipeline版本管理

为了提高脚本可维护性,更好的管理pipeline脚本,我们可以在项目配置中修改流水线定义,使用版本管理脚本,选择pipeline script from SCM: 我们看到现在SCM是无,因为还没有安装版本管理工具,先需要到插件管理中安装git。 安装后,在流水线设置的SCM中就能查看到Git: 在Repository URL中添加版本管理工具github或码云的仓库地址: 在Cred