持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube

目录

一、实验

1.Jenkins使用GitLab共享库实现后端项目Sonarqube

2.优化GitLab共享库

3.Jenkins使用GitLab共享库实现前端项目Sonarqube

二、问题

1.sonar-scanner 未找到命令

2.npm 未找到命令


一、实验

1.Jenkins使用GitLab共享库实现后端项目Sonarqube

(1)已搭建GitLab共享库

① 进入共享库项目

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第1张图片

② 封装库目录
持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第2张图片(2)Jenkins修改配置

①修改选项参数

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第3张图片

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第4张图片②启用SCM并保存

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第5张图片(3)Jenkins安装插件SonarQube Scanner

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第6张图片

(4) Sonarqube生成令牌

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第7张图片

(5)Jenkins添加凭证

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第8张图片

 (6)GitLab修改Jenkinsfile

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第9张图片

(7)Jenkins手动构建项目

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第10张图片

(8)Blue Ocean 查看构建成功

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第11张图片

(9)输出结果

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第12张图片持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第13张图片

(10)Sonarqube已新增项目

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第14张图片

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第15张图片

2.优化GitLab共享库

(1)GitLab新建Sonar.groovy

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第16张图片

(2) 修改Jenkinsfile

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第17张图片

(3)Jenkins再次手动发起流水线

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第18张图片

(4)Blue Ocean查看

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第19张图片

3.Jenkins使用GitLab共享库实现前端项目Sonarqube

(1)Jenkins前端项目开启SCM

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第20张图片

(2)添加选项参数

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第21张图片

(3)GitLab修改Sonar.grovvy,添加主函数CodeSonar进行分支判断,并添加子函数SonarWeb(前端)

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第22张图片

(4)修改Jenkinsfile的“SonarScan”阶段代码,调用主函数CodeSonar

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第23张图片

(4)Jenkins 手动发起流水线

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第24张图片

(5)Blue Ocean查看

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第25张图片

(6)查看日志

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第26张图片

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第27张图片

(7)Sonarqube已新增项目

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第28张图片持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第29张图片

二、问题

1.sonar-scanner 未找到命令

(1)报错

持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube_第30张图片

(2)原因分析

环境变量

(3)解决方法

修改GitLab的Jenkinsfile文件

修改前:

……
sonar-scanner -Dsonar.host.url=http://192.168.204.8:9000 \
……

修改后:

……
/opt/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner -Dsonar.host.url=http://192.168.204.8:9000 \
……

2.npm 未找到命令

(1)报错

(2)原因分析

环境变量

(3)解决方法

修改GitLab共享库的Build.grovvy

修改前:

def NpmBuild(){
        sh "npm install && npm run build"
      }

修改后:

def NpmBuild(){
    nodejs("node14.16.1") {
        sh "npm install && npm run build"
      }
    }

你可能感兴趣的:(ci/cd,jenkins,gitlab)