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

【持续集成_05课_Linux部署SonarQube及结合开发项目部署】

一、Linux下安装SonarQube

1、安装sonarQube

前置条件:sonarQube不能使用root账号进行启动,所以需要创建普通用户及
其用户组

1)创建组

 2)添加用户、组名、密码

3)CMD上传qube文件-不能传到home路径下哦

4)检查并解压上传的包

解压到当前目录

解压完就可以看到了

5) 移动文件夹到非~下,并设置⽤户组可操作权限(-R 后面跟的是组名)

# chown -R sonarqube sonar安装包解压后的路径;命令意义:用于更改文件或目录的所有者
chown -R sonarqube sonarqube-9.7.0.61563/# chgrp -R sonarqube sonar安装包解压后的路径;用于更改文件或目录的所属组
chgrp -R sonarqube sonarqube-9.7.0.61563/# chown -R sonarqube JAVA_HOME路径;用于更改文件或目录的所有者
chown -R sonarqube /usr/java(这个java是老师的文件名,存放jdk的那个)# chgrp -R sonarqube JAVA_HOME路径;用于更改文件或目录的所属组
chgrp -R sonarqube  /usr/java(这个java是老师的文件名,存放jdk的那个)

上面命令的执行


 

6)启动sonar,先切换到组的权限下面再运⾏

 切换用户命令 -su  后面的是组名

然后打开 安装sonar的文件 

启动一定要注意,我们sonar本身就是后台启动(脚本),直接通过脚本启动即可。

windows启动脚本文件后缀: .bat

linux启动脚本文件后缀:.sh

下面是先打开sonarqube文件,然后找到文件下的bin目录,查找bin目录下的Linux系统,打开这个linux系统

 找到了linux系统里的启动脚本的文件名

 执行下面这个命令,就看也执行这个启动脚本

./sonarqube-9.7.0.61563/bin/linux-x86-64/sonar.sh start

7)访问Sonar

访问:http://192.168.1.39:9000/ (汉化同win操作一样,这里就不说了,可以自己去试。)

默认账号密码是admin /admin

2、安装SonarScan插件

复用的话,需要删除原先配置的sonar(3个配置),重新添加,比较保险

1)然后选择版本重新添加

 2)还有这里需要配置新的Ip

3)还需要修改凭证

 新增凭证

4)配置已经完成,需要设置在构建前的执行扫描

配置

常见小问题:、

1)没有权限

提示对下面这个目录没有权限

给权限即可:

chmod 755 -R 路径()上面那2个目录

 

2)课上小问题:

原因:因为sonar占用log的这个目录,所以你的框架尽量不要有这种命名。删除重新提交即可。

首先,需要先改pytest.ini

修改log_file的文件路径和名

现在需要把代码拉下来,然后修改文件

然后需要删掉log文件

新建一个logdata文件用于吧存放日志文件

给换个名字

 然后提交改动的代码

二、扩展知识:部署开发项目

1、持续集成的流程

测试关注的流程

开发项目部署到测试环境,能被自动执行,是需要设置关注这个开发项目

 开发关注的

通过git提交到Gogs仓库,开发项目才需要Sonar扫描

2、 部署开发项目

1)第一步:开发提交到gogs --- 名字:加密项目

2)第二步:jenkins拉取这个研发项目--- 构建 (发布到测试环境)--- 文档

2.1)用Shell去进行执行即可
# 不用纠结python3 -m venv venvsource venv/bin/activatepip install -r requirements.txt -i https://pypi.douban.com/simple/

在Jenkins如下配置

2.2)启动命令:(需要SSH 进行命令操作)

需要下载插件-- Publish over SSH(SSH权限更高,比shell高)

cd "$WORKSPACE"&& ./venv/bin/gunicorn -c gunicorn.conf.py app:app -D

上面的命令解析说明:

cd "$WORKSPACE" ---是打开工作空间./venv/bin/ --找到bin目录gunicorn -c gunicorn.conf.py app:app -D --执行启动命令

下载Publish over SSH插件

配置

1)

2)

3)配置启动命令

4)研发服务部署成功,通过ip+去访问

部署服务,是运维关注的,需要依赖部署说明文档去部署

5)如果开发有代码修改,一修改就触发持续部署,

需要在Jenkins中添加触发器,在Gogs中创建钩子。关联使触发

6)研发项目发布成功,测试脚本自动执行

在Jenkins中的测试自动化项目中,关注研发项目

 

相关文章:

【持续集成_05课_Linux部署SonarQube及结合开发项目部署】

一、Linux下安装SonarQube 1、安装sonarQube 前置条件:sonarQube不能使用root账号进行启动,所以需要创建普通用户及 其用户组 1)创建组 2)添加用户、组名、密码 3)CMD上传qube文件-不能传到home路径下哦 4&#xff09…...

人像视频预处理【时间裁剪+画面裁切+调整帧率】

在视频处理中,cut(裁剪)、crop(画面裁切)和fps(帧率调整)这三个操作的顺序安排对最终的视频质量和效率有重要影响。以下是一种推荐的顺序和理由,旨在提高效率和减少错误:…...

SpringBoot+HttpClient实现文件上传下载

服务端:SpringBoot Controller package com.liliwei.controller;import java.io.File; import java.io.FileInputStream; import java.io.IOException;import javax.servlet.http.HttpServletResponse;import org.springframework.http.HttpHeaders; import org.s…...

QT--控件篇四

一、对话框 在软件开发中,对话框(Dialog)是一种常见的用户界面元素,用于与用户进行交互和获取信息。它通常以模态或非模态的形式出现,模态对话框会阻止用户与应用程序的其他部分交互,直到对话框关闭为止&a…...

opencv—常用函数学习_“干货“_2

目录 五、矩阵计算函数 归一化矩阵 (normalize) 转置矩阵 (transpose) 求矩阵的逆 (invert) 翻转矩阵 (flip) 旋转矩阵 (rotate) 求矩阵的行列式 (determinant) 求矩阵的迹 (trace) 求矩阵的特征值和特征向量 (eigen) 六、代数运算 矩阵加法 (add) 矩阵减法 (subtra…...

解析CSS与JavaScript的使用方法及ECMAScript语法规则

一、CSS的三种使用方式 CSS&#xff08;层叠样式表&#xff09;用于定义网页的样式和布局。以下是CSS的三种使用方式&#xff1a; 1. 内联样式 内联样式是最直接的应用方式&#xff0c;它通过HTML标签的style属性来定义。 代码示例&#xff1a; <h1 style"color: …...

从零开始学习嵌入式----结构体struct和union习题回顾

一、通过结构体和自定义函数实现成绩从大到小的排序&#xff0c;要求在主函数内定义结构体数组。 #include <stdio.h> //定义一个结构体类型 typedef struct Student {int age;char name[32];float score; } STU; //定义一个函数实现成绩从小到大的排序 void fun(STU *p…...

建筑产业网元宇宙的探索与实践

在数字化浪潮的推动下&#xff0c;建筑产业网正迈入一个全新的元宇宙时代。这一变革不仅为建筑设计、施工与管理带来了革新&#xff0c;也为整个行业注入了新的活力与创造力。本文将深入探讨建筑产业网元宇宙的特点、应用及未来趋势&#xff0c;带您领略其在建筑行业中的独特魅…...

比较RMI、HTTP+JSON/XML、gRPC

RMI&#xff08;Remote Method Invocation&#xff0c;远程方法调用&#xff09;、HTTPJSON/XML、gRPC是三种不同的技术或协议&#xff0c;它们各自在远程通信、数据传输和服务交互方面有不同的特点和应用场景。以下是对这三种技术的详细比较&#xff1a; 1. RMI&#xff08;R…...

软件工程-可行性分析

一、可行性分析 可行性分析/研究目的是用最小的代价在尽可能短的时间内确定问题是否得到解决。 FVPV&#xff08;1r&#xff09;^n* FV&#xff1a;未来价值 PV&#xff1a;现值&#xff08;当前货币金额&#xff09; r&#xff1a;利率 n&#xff1a;时间期限 纯收入累计的现…...

iOS ------ 消息传递和消息转发

一&#xff0c;消息传递 在OC中&#xff0c;传递消息就是在对象上调用方法。 相对于C语言的方法就“静态绑定”的函数&#xff0c;在编译器就决定了运行时所要调用的函数。在OC中&#xff0c;如果向某对象传递消息&#xff0c;就会使用动态绑定机制来决定需要调用那个方法。调…...

计算机视觉之Vision Transformer图像分类

Vision Transformer&#xff08;ViT&#xff09;简介 自注意结构模型的发展&#xff0c;特别是Transformer模型的出现&#xff0c;极大推动了自然语言处理模型的发展。Transformers的计算效率和可扩展性使其能够训练具有超过100B参数的规模空前的模型。ViT是自然语言处理和计算…...

【深度学习】BeautyGAN: 美妆,化妆,人脸美妆

https://www.sysu-hcp.net/userfiles/files/2021/03/01/3327b564380f20c9.pdf 【深度学习】BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversaria…...

RocketMQ~架构与工作流程了解

简介 RocketMQ 具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统&#xff0c;由阿里巴巴团队开发&#xff0c;在 2016 年底贡献给 Apache&#xff0c;成为了 Apache 的一个顶级项目。 在阿里内部&#xff0c;RocketMQ 很好地服务了集…...

学习Python的IDE功能--(一)入门导览

项目视图是主要工具窗口之一。它包含项目目录、SDK 特定的外部库和临时文件。点击带条纹的按钮可以预览演示项目。您也可以按Alt1打开。点击以打开项目视图&#xff0c;展开项目目录以查看项目文件。双击以打开welcome.py。 切换到"学习"工具窗口继续学习本课次。…...

gdb调试多线程程序

目录 1、pstack查看各个线程的调用堆栈2、gdb调试多线程2.1 查看线程信息2.2 切换线程2.3 进入线程某层具体的调用堆栈2.4 调度器锁2.4.1 查看调度器锁模式 3、实战3.1 调试多线程崩溃3.2 调试多线程死锁 1、pstack查看各个线程的调用堆栈 命令&#xff1a; 1、查看进程id ps …...

实战GraphRAG(一):初步体验GraphRAG及其与RAG的对比

🌟实战GraphRAG(一):初步体验GraphRAG及其与RAG的对比 文章目录 🌟实战GraphRAG(一):初步体验GraphRAG及其与RAG的对比📖引言🔍一、GraphRAG与RAG的区别🚀二、GraphRAG使用示例1.安装GraphRAG2.运行索引器3.配置4.自动优化提示词5.运行索引管道6.使用查询引擎7…...

37、PHP 实现一个链表中包含环,请找出该链表的环的入口结点

题目&#xff1a; 题目描述 PHP 实现一个链表中包含环&#xff0c;请找出该链表的环的入口结点。 描述&#xff1a; 一个链表中包含环&#xff0c;请找出该链表的环的入口结点。 <?php /*class ListNode{var $val;var $next NULL;function __construct($x){$this->v…...

LIMS系统对实验室管理有哪些帮助?

LIMS系统对实验室管理提供了多方面的帮助&#xff0c;具体体现在以下几个方面&#xff1a; 1. 流程标准化与自动化 LIMS系统通过定义标准化的工作流程&#xff0c;如样品接收、测试分配、数据录入、结果审核和报告生成等&#xff0c;实现了实验室工作流程的自动化。这减少了人…...

在GPU上运行PyTorch

文章目录 1、查看GPU的CUDA版本2、下载CUDA版本3、安装cuDNN4、配置CUDA环境变量5、安装配置Anaconda6、使用Anaconda7、pycharm导入虚拟环境8、安装带GPU的PyTorch⭐9、总结 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#x…...

GNU Radio滤波器设计实战指南:从原理到高性能实现

GNU Radio滤波器设计实战指南&#xff1a;从原理到高性能实现 【免费下载链接】gnuradio GNU Radio – the Free and Open Software Radio Ecosystem 项目地址: https://gitcode.com/gh_mirrors/gn/gnuradio GNU Radio作为开源软件定义无线电生态系统&#xff0c;提供了…...

企业员工福利平台选型:技术架构与对接难点拆解

企业员工福利平台选型&#xff1a;技术架构与对接难点拆解“选对企业员工福利平台&#xff0c;技术架构与系统对接是决定落地成败的关键——忽略技术适配性的选型&#xff0c;往往会让福利项目陷入‘上线易、用着难’的困境。”随着企业数字化转型加速&#xff0c;员工福利从“…...

PyTorch 2.8镜像实战落地:教育机构AI教学平台(图文+视频+LLM)集成方案

PyTorch 2.8镜像实战落地&#xff1a;教育机构AI教学平台&#xff08;图文视频LLM&#xff09;集成方案 1. 教育AI平台的技术挑战与解决方案 现代教育机构在构建AI教学平台时面临三大技术难题&#xff1a;多模态内容生成、算力资源管理和教学场景适配。PyTorch 2.8深度学习镜…...

数字孪生+AI:某国家级技术科研机构:耦合仿真评估部件性能,长期运维监测承压状态

部件仿真&#xff5c;设备安全&#xff5c;能源装备&#xff5c;风险评估 某国家级技术科研机构长期服务于国家级重点工程与大型产业体系&#xff0c;在复杂系统运行保障、风险评估与技术支撑等方面承担着关键角色。其业务覆盖多类型基础设施与工程场景&#xff0c;具备完善的…...

如何用Bypass Paywalls Clean突破付费墙限制?技术解析与实战指南

如何用Bypass Paywalls Clean突破付费墙限制&#xff1f;技术解析与实战指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字内容付费墙日益严密的今天&#xff0c;Bypass Payw…...

微服务架构的陷阱:我们是如何从拆分成“微”麻烦的

对于软件测试从业者而言&#xff0c;微服务架构的兴起既带来了前所未有的挑战&#xff0c;也揭示了隐藏在水面之下的诸多陷阱。从单体应用向微服务转型&#xff0c;初衷是为了提升系统的灵活性、可维护性和团队的交付效率。然而&#xff0c;在实践中&#xff0c;许多团队却发现…...

暗黑破坏神2重制版智能辅助:自动化流程与效率提升完全指南

暗黑破坏神2重制版智能辅助&#xff1a;自动化流程与效率提升完全指南 【免费下载链接】botty D2R Pixel Bot 项目地址: https://gitcode.com/gh_mirrors/bo/botty 在《暗黑破坏神2&#xff1a;重制版》的冒险旅程中&#xff0c;你是否曾因重复刷怪、繁琐的装备拾取而感…...

Mermaid Live Editor终极指南:10个团队协作和项目管理的实用技巧

Mermaid Live Editor终极指南&#xff1a;10个团队协作和项目管理的实用技巧 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-l…...

UI设计入门指南——Figma新手必备操作全解析

1. Figma入门&#xff1a;从零到第一个设计稿 第一次打开Figma时&#xff0c;很多人会被满屏的英文界面和复杂工具栏吓到。其实我刚接触时也一样&#xff0c;但现在回头看&#xff0c;掌握基础操作只需要30分钟。Figma作为目前最流行的UI设计工具&#xff0c;最大的优势就是零门…...

LangChain、LangFlow、LangGraph:一文讲清三大 LLM 框架的定位与差异

01 | LangChain&#xff1a;LLM 应用的“基础设施层”① LangChain 是什么&#xff1f;LangChain 是一个用于构建 LLM 应用的通用框架&#xff0c;核心目标只有一句话&#xff1a;把「大模型 外部工具 数据源 Prompt」系统化地组织起来。它并不是一个“产品”&#xff0c;而…...