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

devtools/2024/12/22 1:02:06/

1、阶段视图:

2、准备工作

所需工具与插件

jdk:可以存在多版本

maven:可以存在多版本

sonar-scanner

凭证令牌

gitlab:credentialsId

sonarqube:配置在sonarqube208服务中

3、jenkinsfile

pipeline {agent anystages {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}:latestsh """docker push ${DOCKER_REGISTRY}/${aliyunRepo}/${image_name}:latest"""// }}}
}}
}

sonarqube 截图


http://www.ppmy.cn/devtools/46322.html

相关文章

java异常习题

1.有关下述Java代码描述正确的选项是 public class TestClass {private static void testMethod(){System.out.println("testMethod");}public static void main(String[] args) {((TestClass)null).testMethod();}} A.编译不通过 B.编译通过&#xff0c;运行异常…

cesium Material的理解与使用

1.简介 材质Material可以是比较简单的&#xff0c;比如直接将一张图片赋予表面&#xff0c;或者使用条纹状、棋盘状的图案&#xff1b;也可以使用Fabric和GLSL&#xff0c;重新创建一个新的材质或者组合现有的材质。例如&#xff0c;我们可以通过程序生成的纹理(procedural bri…

安全风险 - 检测设备是否为模拟器

在很多安全机构的检测中&#xff0c;关于模拟器的运行环境一般也会做监听处理&#xff0c;有的可能允许执行但是会提示用户&#xff0c;有的可能直接禁止在模拟器上运行我方APP 如何判断当前 app 是运行在Android真机&#xff0c;还是运行在模拟器? 可能做 Framework 的朋友思…

6-Django项目--分页模块化封装参数共存

目录 utils/page_data.py 分页模块化封装 在app当中创建一个python package 在当前包里面创建py文件 参数共存 完整代码 utils/page_data.py --包里创建py文件. # -*- coding:utf-8 -*- from django.utils.safestring import mark_safe from copy import deepcopyclass…

黄仁勋的AI时代:英伟达GPU革命的狂欢与挑战

在最近的COMPUTEX 2024大会上&#xff0c;英伟达创始人黄仁勋发布了最新的Blackwell GPU。这次发布不仅标志着英伟达在AI领域的又一次飞跃&#xff0c;也展示了其对未来技术发展的战略规划。本文将详细解析英伟达最新技术的亮点&#xff0c;探讨其在AI时代的市场地位和未来挑战…

探索Python爬虫:实战演练,打造你的数据采集利器

在这个信息爆炸的时代&#xff0c;数据成为了最宝贵的资源之一。Python&#xff0c;以其简洁的语法和强大的库支持&#xff0c;成为了数据采集和处理的首选语言。本文将带领你走进Python爬虫的世界&#xff0c;通过一系列实战演练&#xff0c;教你如何构建自己的数据采集工具。…

Vue:网络请求axios

Axios 是一个基于 Promise 的网络请求库。 安装 npm install axios引入 <script setup> import axios from axios </script>常用 API axios.get(url[, config]) axios.get(/user,{params: {id: 1234,} }) .then(response > console.log(response)) .catch(…

python-bert模型基础笔记0.1.02

python-bert模型基础笔记0.1.00 bert的适合的场景bert多语言和中文模型bert模型两大类官方建议模型模型中名字的含义标题bert系列模型包含的文件bert系列模型参数微调与迁移学习区别参考链接bert的适合的场景 裸跑都非常优秀,句子级别(例如,SST-2)、句子对级别(例如Multi…