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

目录

一、实验

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

2.优化GitLab共享库

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

4.Jenkins通过插件方式进行优化

二、问题

[1.sonar-scanner 未找到命令](#1.sonar-scanner 未找到命令)

[2.npm 未找到命令](#2.npm 未找到命令)


一、实验

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

(1)已搭建GitLab共享库

① 进入共享库项目

② 封装库目录
(2)Jenkins修改配置

①修改选项参数

②启用SCM并保存

(3)Jenkins安装插件SonarQube Scanner

(4) Sonarqube生成令牌

(5)Jenkins添加凭证

(6)GitLab修改Jenkinsfile

(7)Jenkins手动构建项目

(8)Blue Ocean 查看构建成功

(9)输出结果

(10)Sonarqube已新增项目

2.优化GitLab共享库

(1)GitLab新建Sonar.groovy

(2) 修改Jenkinsfile

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

(4)Blue Ocean查看

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

(1)Jenkins前端项目开启SCM

(2)添加选项参数

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

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

(4)Jenkins 手动发起流水线

(5)Blue Ocean查看

(6)查看日志

(7)Sonarqube已新增项目

4.Jenkins通过插件方式进行优化

(1)在Jenkins中安装插件sonarqube scanner并安装

(2)体统配置添加Sonarqube服务器,选择凭据

(3) 工具新增SonarQube Scanner

(4)使用withSonarQubeEnv DSL引入在Jenkins中配置的sonar环境

Groovy 复制代码
## 括号中的`mysonar`一定要与Jenkins设置页面定义的一致。
stage("SonarScan"){
            steps {
               script {
                    groupName = "${JOB_NAME}".split("/")[0]
                    projectName ="${JOB_NAME}".split("/")[-1]
                    //sonar.CodeSonar("${env.buildTool}",projectName,groupName)
                     withSonarQubeEnv("mysonar") {

                          sh """
                                sonar-scanner -Dsonar.host.url=${SONAR_HOST_URL} \
                                    -Dsonar.projectKey=${projectName} \
                                    -Dsonar.projectName=${projectName} \
                                    -Dsonar.projectVersion=${BUILD_ID} \
                                    -Dsonar.login=${SONAR_AUTH_TOKEN} \
                                    -Dsonar.ws.timeout=30 \
                                    -Dsonar.projectDescription="my first project" \
                                    -Dsonar.links.homepage=http://192.168.204.8:82/${groupName}/${projectName} \
                                    -Dsonar.links.ci=http://192.168.204.15:8080/job/${groupName}/job/${projectName}/ \
                                    -Dsonar.sources=src \
                                    -Dsonar.sourceEncoding=UTF-8 \
                                """
                     }
                   
                   
                   
               }

            }

        }

(5)直接在回放中修改前端项目devops03-web-service

(6)点击运行

(7)Blue Ocean 查看

(8)查看日志

(9)分析成功

二、问题

1.sonar-scanner 未找到命令

(1)报错

(2)原因分析

环境变量

(3)解决方法

修改GitLab的Jenkinsfile文件

修改前:

bash 复制代码
......
sonar-scanner -Dsonar.host.url=http://192.168.204.8:9000 \
......

修改后:

bash 复制代码
......
/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

修改前:

bash 复制代码
def NpmBuild(){
        sh "npm install && npm run build"
      }

修改后:

bash 复制代码
def NpmBuild(){
    nodejs("node14.16.1") {
        sh "npm install && npm run build"
      }
    }
相关推荐
IAR Systems6 天前
松下电工借助IAR CI/CD解决方案,实现品质与效率双重飞跃
ci/cd
Cherry的跨界思维6 天前
【AI测试全栈:质量】47、Vue+Prometheus+Grafana实战:打造全方位AI监控面板开发指南
vue.js·人工智能·ci/cd·grafana·prometheus·ai测试·ai全栈
Aliex_git6 天前
Dockerfile 优化实践笔记
笔记·学习·gitlab
海兰6 天前
Jina Embeddings V5 Text + Elasticsearch 9.x 本地部署指南
elasticsearch·jenkins·jina
luod6 天前
Docker 快速安装Jenkins
java·docker·jenkins
小道仙977 天前
jenkins对接、jenkins-rest
java·servlet·jenkins·jenkins-rest
成为你的宁宁7 天前
Jenkins 自动化部署前后端分离若依项目全攻略:涵盖环境配置、Maven/Node.js 工具安装、GitLab 项目协同,及前后端构建、服务器推送与代码更新验证全步骤
node.js·自动化·gitlab·jenkins·maven
声声长乐7 天前
Jenkins + Docker 完整部署指南
ubuntu·docker·jenkins
古斯塔夫歼星炮7 天前
Dify + Jenkins 实现AI应用持续集成与自动化部署
ci/cd·jenkins·dify
codingWhat7 天前
手把手系列之——前端工程化
ci/cd·devops·前端工程化