记录jenkins pipeline ,git+maven+sonarqube+打包镜像上传到阿里云镜像仓库

1、阶段视图:

2、准备工作

所需工具与插件

jdk:可以存在多版本

maven:可以存在多版本

sonar-scanner

凭证令牌

gitlab:credentialsId

sonarqube:配置在sonarqube208服务中

3、jenkinsfile

复制代码
pipeline {
    agent any

    stages {
        stage('从gitlab下载代码') {
            steps {
                script {
                    git credentialsId: '977a0318-19c4-45f5-8f45-9e129d6753e3', url: 'http://git.xxxo.com.cn/officeweb/Officialweb.git'
                }
            }
        }
        stage('maven构建代码') {
            tools {
                 jdk "jdk1.8"
                 }
            steps {
                sh 'java -version'
                sh '/usr/local/maven/apache-maven-3.5.4/bin/mvn -version'
                sh ' /usr/local/maven/apache-maven-3.5.4/bin/mvn clean install -Dmaven.test.skip=true'

            }
            post {
                always {
                        script {
                            if (currentBuild.currentResult == 'FAILURE') {
                                currentBuild.result = 'FAILURE'
                                throw new Exception('构建失败,停止Pipeline执行')
                            }
                        }
                    }
                
            }
        }
        stage('SonarQube分析代码') {
            steps {
                withSonarQubeEnv('sonarqube208') {
                    sh """
                    /usr/local/sonar-scanner-5/bin/sonar-scanner \
                    -Dsonar.projectKey=guanwang-server \
                    -Dsonar.projectName=官网后台 \
                    -Dsonar.sources=src \
                    -Dsonar.language=java \
                    -Dsonar.java.binaries=target/classes \
                    -Dsonar.junit.reportsPath=target/surefire-reports

                    """
                }
            }
        }
        stage('生成自定义镜像') { 
           steps {
               script {
                   sh """
                    cp /opt/pipeline/java/Dockerfile .
                    docker build -t ${DOCKER_REGISTRY}/${aliyunRepo}/${image_name}:latest .
                    """
                }
           }
        }
        stage('登录到镜像仓库') {
            steps {
                script{
                //sh 'docker logout ${DOCKER_REGISTRY}'
                //withCredentials([usernamePassword(credentialsId: 'b9bfab04-2a1f-4690-88ec-fb8c250d056a', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASSWORD')]) {
                sh """
                    docker logout ${DOCKER_REGISTRY}
                    docker login -u test-acr@1xxxxx5731673  -p xxxxzEWb ${DOCKER_REGISTRY}
                """
        }
                }
    }
        stage('上传自定义镜像到阿里云') {
            steps {
                script {
            //withCredentials([usernamePassword(credentialsId: 'b9bfab04-2a1f-4690-88ec-fb8c250d056a', usernameVariable: 'aliyunUser', passwordVariable: 'aliyunPasswd')]) {
                  //  docker login -u ${aliyunUser} --password-stdin ${aliyunAddress} << EOF
                  //  ${aliyunPasswd}
                  //  EOF
                  //docker tag ${image_name}:latest${aliyunAddress}/${aliyunRepo}/${image_name}:latest
                sh """
                    
                    docker push ${DOCKER_REGISTRY}/${aliyunRepo}/${image_name}:latest
                """
           // }
        }
    }
}

}
}

sonarqube 截图

相关推荐
4***V20215 小时前
GitLab Pages配置
git·gitlab·github
ζั͡山 ั͡有扶苏 ั͡✾15 小时前
EFK 日志系统搭建完整教程
运维·jenkins·kibana·es·filebeat
CelineCoding15 小时前
git 处理异常操作
git
2501_9411474216 小时前
基于 Rust 与 Actix 构建高性能微服务与低延迟分布式系统实践分享
maven
E***q53916 小时前
Git版本控制常见问题
git
懂得节能嘛.21 小时前
【SDK开发实践】从Java编码到阿里云制品仓库部署
java·阿里云·maven
sulikey1 天前
从入门到精通:如何自己编写高质量的 .gitignore(面向工程实践)
git·gitee·编辑器·gitlab·github·gitignore·gitattributes
青靴1 天前
轻量级 CI/CD:Git Hooks 自动部署 Node.js 应用(CICD-demo)
git·ci/cd·node.js
哟哟耶耶1 天前
git-git cherry-pick(从分支挑选特定提交-哈希值)更改应用到当前分支
git
无限进步_1 天前
C语言动态内存管理:掌握malloc、calloc、realloc和free的实战应用
c语言·开发语言·c++·git·算法·github·visual studio