Jenkins集成openshift容器中进行代码扫描
1.Dockerfile
sonarDockerfile: (基础slave镜像参考上篇博文)
FROM registry.it.com/openshift/jenkins-slave:latest #tool maven
ADD apache-maven-3.5.0.tar.gz /usr/local/ #tool sonar
ADD sonar-scanner.tar.gz /usr/local/
2.Jenkinsfile
def label = "mypod-${UUID.randomUUID().toString()}"
//代码扫描
def SonarScan(projectType,skipSonar,srcDir,serviceName){
def scanHome = "/usr/local/sonar-scanner"
if (projectType == 'java'){
if ("${buildType}" == 'gradle'){
codepath = 'build/classes'
} else{
codepath = 'target/classes'
}
try {
sh """
cd ${srcDir}
${scanHome}/bin/sonar-scanner -Dsonar.projectName=${serviceName} -Dsonar.projectKey=${serviceName} \
-Dsonar.sources=src/main -Dsonar.tests=src/test -Dsonar.language=java -Dsonar.sourceEncoding=UTF-8 \
-Dsonar.java.binaries=${codepath} -Dsonar.java.coveragePlugin=jacoco \
-Dsonar.jacoco.reportPath=target/jacoco.exec -Dsonar.junit.reportsPath=target/surefire-reports \
-Dsonar.surefire.reportsPath=target/surefire-reports -Dsonar.projectDescription='devopsdevops'
"""
} catch (e){
currentBuild.description="代码扫描失败!"
error '代码扫描失败!'
}
}
}
//docker
podTemplate(
label: label,
cloud: 'kubernetes',
containers: [
containerTemplate(
name: 'jnlp',
image: 'registry.it.com/openshift/slave-maven-sonar-jdk8u111:latest',
ttyEnabled: true,
privileged: false,
alwaysPullImage: true,
args: '${computer.jnlpmac} ${computer.name}',
resourceRequestCpu: '8000m',
resourceLimitCpu: '8000m',
resourceRequestMemory: '16Gi',
resourceLimitMemory: '16Gi',
envVars: [
envVar(key: 'PATH', value: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/apache-maven-3.5.0/bin'),
envVar(key: 'CLASS_PATH', value: '/docker-java-home/jre/lib/rt.jar:/docker-java-home/jre/lib/dt.jar:/docker-java-home/jre/lib/tools.jar')]
)
],
volumes: [persistentVolumeClaim(mountPath: '/etc/data/', claimName: 'jenkins')],
//idleMinutes: '60',
//activeDeadlineSeconds: '60',
slaveConnectTimeout: '60'
){
node(label) {
ws("${workspace}"){
stage('GetCode'){
.......
}
stage('Build'){
.......
}
stage('CodeScan'){
SonarScan('java',skipSonar,srcDir,serviceName)
}
}
}
}
Jenkins集成openshift容器中进行代码扫描的更多相关文章
- Jenkins + docker ,容器中跑docker服务
1. 宿主机:安装docker 2. 启动jenkins服务 https://jenkins.io/download/ Jenkins官网找自己需要的镜像版本号进行使用. docker run -it ...
- drone 学习六 发布部署&&集成私有容器仓库&&构建代码s3 保存
备注: 需要进行drone 以及gitlab 环境的配置,可以参考相关资料 1. 参考项目 https://github.com/rongfengliang/drone-appdemo ...
- SonarQube学习(四)- 使用Jenkins集成JaCoCo和SonarQube检查代码测试覆盖率
一.前言 我始终觉得学习这件事是自己的事,自己会了就是会了,无关于他人,但有点小伤感的是现在的阅读量开始走低. 二.准备 安装Jenkins,请移步<Docker学习(二)- Docker 安装 ...
- 功能+自动化测试代码扫描(demo)
Jacoco 是一个开源的覆盖率工具.Jacoco 可以嵌入到 Ant .Maven 中,并提供了 EclEmma Eclipse 插件,也可以使用 Java Agent 技术监控 Java 程序.很 ...
- gitlab Docker容器创建命令以及从容器中备份gitlab仓库示例
Gitlab容器启动命令: docker run -d --name gitlab --publish : --publish : --hostname gitlab-server --volume ...
- Jenkins集成SonarQube遇到的报错
Jenkins集成Sonar过程中遇到的报错 1.jenkins中无法添加sonarqube的token凭证 因为添加的凭证类型错误,所以无法添加token,类型应该选择"Secret te ...
- 持续集成工具之jenkins+sonarqube做代码扫描
上一篇我们主要聊了下代码质量管理平台sonarqube的安装部署以及它的工作方式做了简单的描述和代码扫描演示:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13 ...
- 在 k8s 中的 jenkins 集成 sonarqube 实现代码质量检查
不乱于心,不困于情,不畏将来,不念过往,如此安好 --<不宠无惊过一生>丰子恺 概述 关于在 k8s 中安装 jenkins 和 sornarqube 可以查看下面的文章: 在 k8s 中 ...
- jenkins集成sonarQube实现代码质量检查
1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误.漏洞和代码异味.它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查. 其工作流程如下: ...
随机推荐
- 利用Selenium爬取淘宝商品信息
一. Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样.由于这个性质,Selenium也是一 ...
- SQL Server 2012还原一直卡在ASYNC_IO_COMPLETION浅析
在SQL Server 2012(11.0.7001.0)下面在还原一个数据库(备份文件40多G大小,实际数据库大小300G),在还原过程中,出现一直等待ASYNC_IO_COMPLETION,如下测 ...
- vs添加到附加进程调试(IIS页面调试)
有时候单元测试不是很方便,通过页面调试接口会更直观,也跟容易发现问题(尤其是在页面传参的时候),这时vs添加到附加进程的调试方式就显得尤为重要了! 步骤如下: 1.首先是通过IIS建立网站,(前提是要 ...
- Uvision4创建工程
创建工程 创建好工程会出现如下的界面 创建文件( .asm 或 .c ) 选择菜单栏中的File->New- 按 Ctrl+S 保存文件并填写文件名 添加到之前创建的工程中 选择Target1- ...
- 自动化测试基础篇--Selenium获取元素属性
摘自https://www.cnblogs.com/sanzangTst/p/8375938.html 通常在做断言之前,都要先获取界面上元素的属性,然后与期望结果对比. 一.获取页面title 二. ...
- Windows7安装Bitvise开启ssh服务
Windows7安装Bitvise开启ssh服务 by:铁乐猫 在Liunx和windows10上配置SSH服务是一件很容易的事,毕竟系统己经自带了ssh的服务功能. 不过在windows7上可不容易 ...
- 解决 win10 由于磁盘缓慢造成机器迟钝
关闭 windows 的superfetch服务 建议禁止 superfetch服务: http://www.360quan.com/safe/6946.html 操作: http://jingyan ...
- Java入门(七):方法
方法,在日常生活中可以理解成解决问题或处理事情的技巧,一个方法的形成,需要思考和分析,从而形成一步一步的步骤,最后在实际执行过程中验证自己的思路.在Java中,方法的形成亦是如此. 方法,指用于封装一 ...
- LeetCode算法题-Symmetric Tree(Java实现)
这是悦乐书的第163次更新,第165篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第22题(顺位题号是101).给定二叉树,检查它是否是自身的镜像(即,围绕其中心对称). ...
- Java 7 for Absolute Beginners/Java 7基础教程--代码纠错
中文版书中的问题代码记录: 只记录了P213后面的错误代码,如果后面发现P213页前面的错误代码,会继续补齐.但我提供的代码都是可以正常运行的,如果有使用者发现中文版书中其他的错误代码请告诉我,方便我 ...