Jenkins集成openshift容器中进行代码扫描

1.Dockerfile

 sonarDockerfile: (基础slave镜像参考上篇博文)

1FROM registry.it.com/openshift/jenkins-slave:latest 2 3#tool maven 4ADD apache-maven-3.5.0.tar.gz /usr/local/ 5 6#tool sonar 7ADD sonar-scanner.tar.gz /usr/local/

2.Jenkinsfile

1def label = "mypod-${UUID.randomUUID().toString()}" 2 3//代码扫描 4def SonarScan(projectType,skipSonar,srcDir,serviceName){ 5 def scanHome = "/usr/local/sonar-scanner" 6 if (projectType == 'java'){ 7 if ("${buildType}" == 'gradle'){ 8 codepath = 'build/classes' 9 } else{ 10 codepath = 'target/classes' 11 } 12 try { 13 sh """ 14 cd ${srcDir} 15 ${scanHome}/bin/sonar-scanner -Dsonar.projectName=${serviceName} -Dsonar.projectKey=${serviceName} \ 16 -Dsonar.sources=src/main -Dsonar.tests=src/test -Dsonar.language=java -Dsonar.sourceEncoding=UTF-8 \ 17 -Dsonar.java.binaries=${codepath} -Dsonar.java.coveragePlugin=jacoco \ 18 -Dsonar.jacoco.reportPath=target/jacoco.exec -Dsonar.junit.reportsPath=target/surefire-reports \ 19 -Dsonar.surefire.reportsPath=target/surefire-reports -Dsonar.projectDescription='devopsdevops' 20 """ 21 } catch (e){ 22 currentBuild.description="代码扫描失败!" 23 error '代码扫描失败!' 24 } 25 } 26} 27 28//docker 29podTemplate( 30 label: label, 31 cloud: 'kubernetes', 32 containers: [ 33 containerTemplate( 34 name: 'jnlp', 35 image: 'registry.it.com/openshift/slave-maven-sonar-jdk8u111:latest', 36 ttyEnabled: true, 37 privileged: false, 38 alwaysPullImage: true, 39 args: '${computer.jnlpmac} ${computer.name}', 40 resourceRequestCpu: '8000m', 41 resourceLimitCpu: '8000m', 42 resourceRequestMemory: '16Gi', 43 resourceLimitMemory: '16Gi', 44 envVars: [ 45 envVar(key: 'PATH', value: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/apache-maven-3.5.0/bin'), 46 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')] 47 ) 48 ], 49 volumes: [persistentVolumeClaim(mountPath: '/etc/data/', claimName: 'jenkins')], 50 //idleMinutes: '60', 51 //activeDeadlineSeconds: '60', 52 slaveConnectTimeout: '60' 53 ){ 54 node(label) { 55 ws("${workspace}"){ 56 stage('GetCode'){ 57 ....... 58 } 59 60 stage('Build'){ 61 62 ....... 63 } 64 65 stage('CodeScan'){ 66 SonarScan('java',skipSonar,srcDir,serviceName) 67 } 68 69 } 70 } 71}

本文同步分享在 博客“MASCOT”(CNBlog)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )