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是一款自动化代码审查工具,用于检测代码中的错误.漏洞和代码异味.它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查. 其工作流程如下: ...
随机推荐
- java设计模式之模板模式以及钩子方法使用
1.使用背景 模板方法模式是通过把不变行为搬到超类,去除子类里面的重复代码提现它的优势,它提供了一个很好的代码复用平台.当不可变和可变的方法在子类中混合在一起的时候, 不变的方法就会在子类中多次出现, ...
- C#多线程图片爬虫
写了个简单的多线程图片爬虫,整理一下.数据已经爬下来了,图片URL需要自行拼接,首先从Lawyers表中取的RawData字段,RawData中有一个list字段是json格式的数据,需要的只是lis ...
- java----八种排序算法
1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数……直 ...
- C#-事件(十八)
概述 事件(Event) 基本上说是一个用户操作,如按键.点击.鼠标移动 使用事件,可以很方便地确定程序执行顺序 事件在类中声明且生成,且通过使用同一个类或其他类中的委托与事件处理程序关联 包含事件的 ...
- java应用系统运行速度慢的解决方法
场景:我们在部署了TOMCAT应用,刚刚开始启动的一个段时间内.访问系统的速度比较快.但是过了一段时间,应用系统就慢慢的变慢起来了.服务的访问加载时间慢慢变长. 问题解决思路: 1,查看部署应用系统的 ...
- element-ui 2.4.8 BUG 标签页的最后一个Tab标题没法移除,更新后发现最新版本不存在该问题了 记录下
- Linux 安装golang
访问官方下载地址 或 https://studygolang.com/dl ,32位系统下载go1.9.4.linux-386.tar.gz,64位系统下载go1.9.4.linux-amd64.ta ...
- 【合集】Hadoop 合集
0. 说明 Hadoop 随笔的目录 1. HDFS 主要内容: [HDFS_1] HDFS 的概念和特性 [HDFS_2] HDFS 的 Shell 操作 [HDFS_3] HDFS 工作机制 [H ...
- Hibernate 5 入门指南-基于类注解
首先创建hibernate.cfg.xml配置文件并做简单的配置 <hibernate-configuration> <session-factory> & ...
- line-height
如何实现左右两边有小竖线,但是高度比中间的字短? 用line-height,把line-height设置得跟height一样大,同时把font-size设置比line-height大即可