当前位置: 首页 > news >正文

DevOps(四)

CD(二)

    • 1. CD
      • Step 1 - 上传代码
      • Step 2 - 下载代码
      • Step 3 - 检查代码
      • Step 4 - 编译代码
      • Step 5 - 上传仓库
      • Step 6 - 下载软件
      • Step 7 - 制作镜像
      • Step 8 - 上传镜像
      • Step 9 - 部署服务
    • 2. 整体预览
      • 2.1 预览
        • 1. 修改代码
        • 2. 查看sonarqube检查结果
        • 3. 查看nexus仓库
        • 4. 查看harbor仓库
        • 5. 整体效果
      • 2.2 pipeline完整版
    • 3. 写在最后...

在这里插入图片描述

1. CD

参考前面的流程图,我们正式开始CD的流程

Step 1 - 上传代码

  • 安装git
    参考 Windows安装Git图文教程
  • 配置IDEA
    参考 IDEA配置Git,以GitHub远程仓库为例
  • 提交代码到本地 Commit
  • gitlab账号密码:root/Newm123@
    在这里插入图片描述
  • gitlab创建项目,复制URL
    在这里插入图片描述
  • IDEA push代码
    会提示输入gitlab URL 账号密码在这里插入图片描述
  • 提交完成
    在这里插入图片描述

Step 2 - 下载代码

  • 在jenkins上创建pipeline项目
    在这里插入图片描述
  • 创建节点,并连接节点
    在这里插入图片描述
    在这里插入图片描述
  • 配置jenkins gitlab(不配置也可以,因为我们在pipeline中也需要配置)
    Dashboard > Manage Jenkins >System
    在这里插入图片描述
  • 配置触发器(不配置也可以,在pipeline中也可以配置)
    在这里插入图片描述
  • pipeline片段
pipeline {agent { node { label 'node-133'}}stages {stage('Build') {steps {// Get some code from a GitHub repositorygit credentialsId: 'd3cb7c68-63e5-46d6-a505-d73a89902758', url: 'http://192.168.17.132:8929/devs/myjava.git'// Run Maven on a Unix agent.sh "mvn -Dmaven.test.failure.ignore=true clean package"// To run Maven on a Windows agent, use// bat "mvn -Dmaven.test.failure.ignore=true clean package"}}}
}

此处把mvn打包也一同配置了,并进行简单测试
在这里插入图片描述

[root@node-133 MyJava-Pipeline]# ll target/
total 4
drwxr-xr-x 2 root root   29 Jul 19 05:25 classes
drwxr-xr-x 3 root root   25 Jul 19 05:25 generated-sources
drwxr-xr-x 2 root root   28 Jul 19 05:25 maven-archiver
drwxr-xr-x 3 root root   35 Jul 19 05:25 maven-status
drwxr-xr-x 4 root root   54 Jul 19 05:25 MyJava-latest
-rw-r--r-- 1 root root 3054 Jul 19 05:25 MyJava-latest.war
[root@node-133 MyJava-Pipeline]# pwd
/opt/jenkins/workspace/MyJava-Pipeline

Step 3 - 检查代码

  • 启动sonarqube,登录并设置密码
    http://192.168.17.133:9090
    admin/password
    在这里插入图片描述
  • 部署sonar-scanner
unzip sonar-scanner-cli-4.7.0.2747-linux.zip
cd sonar-scanner-4.7.0.2747-linux/
vim conf/sonar-scanner.properties
[root@dbc-server-554 sonar-scanner-4.7.0.2747-linux]# cat conf/sonar-scanner.properties
#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here#----- Default SonarQube server
sonar.host.url=http://localhost:9090#----- Default source code encoding
sonar.sourceEncoding=UTF-8
ln -sv /root/docker/sonar/sonar-scanner-4.7.0.2747-linux /usr/local/sonar-scanner
export PATH=/usr/local/sonar-scanner/bin:$PATH
source .bashrc
[root@dbc-server-554 sonar-scanner-4.7.0.2747-linux]# sonar-scanner -h
INFO:
INFO: usage: sonar-scanner [options]
INFO:
...
  • 生成扫描命令
    在这里插入图片描述
mvn clean verify sonar:sonar \-Dsonar.projectKey=MyJava \-Dsonar.host.url=http://192.168.17.133:9090 \-Dsonar.login=6b1dddd3274606082753ff907ee1b0380c28298a

部署jenkins pipeline

  • pipeline片段
//定义http方法
def HttpReq(reqType,reqUrl,reqBody){sonarServer = "http://192.168.17.133:9090/api"// 可以不加authentication认证,因为默认不需要result = httpRequest  consoleLogResponseBody: true, httpMode: 'GET',responseHandle: 'NONE', url: "${sonarServer}/${reqUrl}"                   //                customHeaders:[[name:'Authorization', value:"Basic ${credentials}"]]return result
}//获取Sonar质量阈状态
def GetProjectStatus(projectName){apiUrl = "project_branches/list?project=${projectName}"response = HttpReq("GET",apiUrl,'')response = readJSON text: """${response.content}"""result = response["branches"][0]["status"]["qualityGateStatus"]println(response)return result
}pipeline 

相关文章:

DevOps(四)

CD(二) 1. CDStep 1 - 上传代码Step 2 - 下载代码Step 3 - 检查代码Step 4 - 编译代码Step 5 - 上传仓库Step 6 - 下载软件Step 7 - 制作镜像Step 8 - 上传镜像Step 9 - 部署服务2. 整体预览2.1 预览1. 修改代码2. 查看sonarqube检查结果3. 查看nexus仓库4. 查看harbor仓库5.…...

Element-plus侧边栏踩坑

问题描述 el-menu直接嵌套el-menu-item菜单&#xff0c;折叠时不会出现文字显示和小箭头无法隐藏的问题&#xff0c;但是实际开发需求中难免需要把el-menu-item封装为组件 解决 vue3项目中嵌套两层template <template><template v-for"item in list" :k…...

支持多种通信方式和协议方便接入第三方服务器或云平台

2路RS485串口是一种常用的通信接口&#xff0c;可以支持Modbus Slave协议&#xff0c;并可接入SCADA、HMI、DSC、PLC等上位机。它还支持Modbus RTU Master协议&#xff0c;可用于扩展多达48个Modbus Slave设备&#xff0c;如Modbus RTU远程数据采集模块、电表、水表、柴油发电机…...

使用 OpenCV 进行图像模糊度检测(拉普拉斯方差方法)

写在前面 工作中遇到&#xff0c;简单整理人脸识别中&#xff0c;对于模糊程度较高的图像数据&#xff0c;识别率低&#xff0c;错误率高。虽然使用 AdaFace 模型&#xff0c;对低质量人脸表现尤为突出。但是还是需要对 模糊程度高的图像进行丢弃处理当前通过阈值分类&#xff…...

神经网络简单介绍

人工神经网络(artififial neural network) 简称神经网络&#xff0c;它是一种模仿生物神经网络结构和功能的非线性数学模型。 神经网络通过输入层接受原始特征信息&#xff0c;再通过隐藏层进行特征信息的加工和提取&#xff0c;最后通过输出层输出结果。 根据需要神经网络可以…...

16位S912ZVML32F3MKH、S912ZVML31F1WKF、S912ZVML31F1MKH混合信号MCU,适用于汽车和工业电机控制应用。

S12 MagniV微控制器是易于使用且高度集成的混合信号MCU&#xff0c;非常适合用于汽车和工业应用。S12 MagniV MCU提供单芯片解决方案&#xff0c;是基于成熟的S12技术的完整系统级封装 (SiP) 解决方案&#xff0c;在整个产品组合内软件和工具都兼容。 S12 MagniV系统级封装 (S…...

力扣 509. 斐波那契数

题目来源&#xff1a;https://leetcode.cn/problems/fibonacci-number/description/ C题解1&#xff1a;根据题意&#xff0c;直接用递归函数。 class Solution { public:int fib(int n) {if(n 0) return 0;else if(n 1) return 1;else return(fib(n-1) fib(n-2));} }; C题…...

使用 DolphinDB TopN 函数探索高效的Alpha因子

DolphinDB 已经有非常多的窗口计算函数&#xff0c;例如 m 系列的滑动窗口计算&#xff0c;cum 系列累计窗口计算&#xff0c;tm 系列的的时间窗口滑动计算。但是所有这类函数都是对窗口内的所有记录进行指标计算&#xff0c;难免包含很多噪音。 DolphinDB 的金融领域用户反馈…...

超聚变和厦门大学助力兴业银行构建智慧金融隐私计算平台,助力信用卡业务精准营销...

兴业银行与超聚变数字技术有限公司、厦门大学携手&#xff0c;发挥产学研用一体化整体优势联合建设&#xff0c;厦门大学提供先进的算法模型及科研能力&#xff0c;超聚变提供产品解决方案及工程能力&#xff0c;兴业银行提供金融实践能力&#xff0c;三方发挥各自领域优势&…...

docker 的compose安装

1. Docker Compose 环境安装 Docker Compose 是 Docker 的独立产品&#xff0c;因此需要安装 Docker 之后在单独安装 Docker Compose docker compose 实现单机容器集群编排管理&#xff08;使用一个模板文件定义多个应用容器的启动参数和依赖关系&#xff0c;并使用docker co…...

JavaScript---事件对象event

获取事件对象&#xff1a; 事件对象&#xff1a;是个对象&#xff0c;这个对象里有事件触发时的相关信息&#xff0c;在事件绑定的回调函数的第一个参数就是事件对象&#xff0c;一般命名为event、ev、e eg: 元素.addEventListener(click,function (e){}) 部分常用属性&…...

Day 15 C++对象模型和this指针

目录 C对象模型 类内的成员变量和成员函数分开存储 总结 this指针 概念 示例 用途 当形参和成员变量同名时 在非静态成员函数中&#xff0c;如果希望返回对象本身 例子 空指针访问成员函数 示例 const修饰成员函数 常函数&#xff08;const member function&…...

HarmonyOS/OpenHarmony元服务开发-卡片生命周期管理

创建ArkTS卡片&#xff0c;需实现FormExtensionAbility生命周期接口。 1.在EntryFormAbility.ts中&#xff0c;导入相关模块。 import formInfo from ohos.app.form.formInfo; import formBindingData from ohos.app.form.formBindingData; import FormExtensionAbility from …...

软件工程01

软件工程原则&#xff1a; 开闭原则&#xff1a; open closed principle &#xff1a; 对扩展开放&#xff0c;对修改关闭&#xff0c;&#xff0c;&#xff0c;只让扩展&#xff0c;不让修改&#xff0c;用新增的类去替代修改的类 扩展之后&#xff0c;代码不用改变&#xff…...

UML/SysML建模工具更新(2023.7)(1-5)有国产工具

DDD领域驱动设计批评文集 欢迎加入“软件方法建模师”群 《软件方法》各章合集 最近一段时间更新的工具有&#xff1a; 工具最新版本&#xff1a;Visual Paradigm 17.1 更新时间&#xff1a;2023年7月11日 工具简介 很用心的建模工具。支持编写用例规约。支持文本分析和C…...

Mac plist文件

macOS、iOS、iPadOS的应用程序都可能会有plist配置文件&#xff0c;他是苹果系列操作系统特有的配置文件。 plist的本质是个xml格式的文本文件&#xff0c;英文全称是property list&#xff0c;文件后缀使用.plist。 对于普通用户来说&#xff0c;基本不用管plist文件是什么&…...

基于Java+SpringBoot+vue前后端分离校园周边美食探索分享平台设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

【openwrt】package介绍

openwrt package介绍 OpenWrt 构建系统主要围绕package的概念展开。不管是什么软件&#xff0c;几乎都对应一个package。 这几乎适用于系统中的所有内容&#xff1a;HOST工具、交叉编译工具链、Linux 内核、内核mod、根文件系统和上层的应用软件。 一个 OpenWrt package本质上…...

vue 封装一个鼠标拖动选择时间段功能

<template><div class"timeRange"><div class"calendar"><table><thead><tr><th rowspan"6" class"weekRow"><b>周/时间</b></th><th colspan"24"><…...

ubuntu22.0安装Barrier局域网共享鼠标键盘

ubuntu22.0安装Barrier局域网共享鼠标键盘 参考网站安装步骤客户端一直开启中解决 参考网站 https://idroot.us/install-barrier-ubuntu-22-04/ 安装步骤 sudo apt update sudo apt upgrade sudo apt install wget apt-transport-https gnupg2 software-properties-common s…...

React Native vs Flutter:一次深入到底的性能对比分析(含原理 + 实战)

目录 一、先说结论&#xff08;避免踩坑&#xff09; 二、架构对比&#xff1a;性能差异的根源 1. React Native 架构 关键点&#xff1a; 2. Flutter 架构 关键点&#xff1a; 3. 核心差异总结 三、性能对比核心维度 四、启动性能&#xff08;App Launch Time&#x…...

3分钟快速上手:text-generation-webui大模型本地部署完全指南

3分钟快速上手&#xff1a;text-generation-webui大模型本地部署完全指南 【免费下载链接】text-generation-webui A Gradio web UI for Large Language Models. Supports transformers, GPTQ, AWQ, EXL2, llama.cpp (GGUF), Llama models. 项目地址: https://gitcode.com/Gi…...

Unity3D集成百度语音识别与唤醒功能实战指南(Android平台)

1. 为什么选择百度语音SDK&#xff1f; 在Unity3D项目中实现语音交互功能时&#xff0c;百度语音识别与唤醒SDK是我测试过最稳定的解决方案之一。特别是在Android平台上&#xff0c;它的离线唤醒功能响应速度能控制在800毫秒内&#xff0c;识别准确率在安静环境下能达到95%以上…...

苹果M系列芯片用户必看:三步搞定iOS游戏在Mac上的完美运行方案

苹果M系列芯片用户必看&#xff1a;三步搞定iOS游戏在Mac上的完美运行方案 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 还在为Mac上无法畅玩心爱的iOS游戏而烦恼吗&#xff1f;你是否想过&#xff…...

DeepFace模型管理终极指南:告别首次运行等待的3种快速方案

DeepFace模型管理终极指南&#xff1a;告别首次运行等待的3种快速方案 【免费下载链接】deepface A Lightweight Face Recognition and Facial Attribute Analysis (Age, Gender, Emotion and Race) Library for Python 项目地址: https://gitcode.com/GitHub_Trending/de/de…...

从振荡器到稳定电源:用三阶RC滤波电路讲透控制环路的‘稳定’与‘发散’

从振荡器到稳定电源&#xff1a;三阶RC滤波电路揭示控制环路的稳定性本质 想象一下&#xff0c;你正在调试一个看似简单的三阶RC低通滤波电路。当你逐渐增大放大器的增益时&#xff0c;电路突然从安静的滤波状态转变为持续振荡——原本应该衰减高频信号的电路&#xff0c;现在…...

StarVCenter单机版安装避坑指南:从BIOS设置到虚拟机创建的完整流程

StarVCenter单机版安装全流程实战&#xff1a;从硬件准备到虚拟机管理的深度解析 在当今企业IT基础设施快速迭代的背景下&#xff0c;虚拟化技术已成为资源整合与管理的核心解决方案。StarVCenter作为一款国产化虚拟化管理平台&#xff0c;其单机版部署方案特别适合中小型业务场…...

setup-php 故障排除手册:常见问题解决方案与调试技巧

setup-php 故障排除手册&#xff1a;常见问题解决方案与调试技巧 【免费下载链接】setup-php shivammathur/setup-php: 是一个用于安装和配置 PHP 的脚本&#xff0c;可以方便地安装和配置 PHP 环境。适合对 PHP、环境配置和想要实现 PHP 环境配置的开发者。 项目地址: https…...

跨平台开发避坑:海康SDK在Linux下PRO_LoginHikDevice失败的依赖冲突解析

1. 从Windows到Linux的迁移之痛&#xff1a;海康SDK登录失败初探 最近接手一个项目&#xff0c;需要把原本在Windows上运行良好的海康SDK开发代码迁移到Ubuntu 20.04LTS环境。本以为只是简单的环境切换&#xff0c;没想到刚起步就栽了个大跟头——PRO_LoginHikDevice方法死活登…...

手把手教你用STM32H7S7实现高速USB复合设备(CDC+MSC):从CubeMX配置到性能优化

STM32H7高速USB复合设备开发实战&#xff1a;CDCMSC架构设计与性能调优 在嵌入式系统开发中&#xff0c;USB复合设备技术正成为连接智能硬件与主机系统的关键桥梁。STM32H7系列凭借其Cortex-M7内核和480Mbps的高速USB外设&#xff0c;为开发者提供了实现高性能复合设备的理想平…...