[持续集成]

学习目标

  • 能够使用 Git 代码托管平台管理代码
  • 能够实现 jenkins+postman 的持续集成
  • 能够实现 jenkins+代码 的持续集成

持续集成

  • 概念 : 将自己工作成果持续不断地把代码聚集在一起,成员可以每天集成一次或多次
  • 相关工具 :
    • git : 代码管理工具,自带本地仓库
    • gitee : 远程代码管理仓库,云端仓库,github是国外远程代码管理仓库,gitlab是企业私有服务器
    • jenkins : 实现持续集成,管理当前测试脚本,生成测试报告,发送邮件

Gitee

默认安装结束后,使用git --version查验
在这里插入图片描述

git config --global user.email  "自己邮箱@xxx.com"	//这里建议网易云邮箱
git config --global user.name  "用户名(可任意写,不允许中文)"
  • 简介 :
    • Git分布式版本控制系统,实现版本控制+多人协同
      在这里插入图片描述
    • 推送 :
      • add : 添加
      • commit : 提交
      • push : 推送
    • 拉取 :
      • pull
pycharm配置Gitee插件

在这里插入图片描述

pycharm与Gitee相关操作
将Gitee的项目checkout到Pycharm中
  • 应用场景 : 第一次从gitee下载代码到pycharm,本地pycharm中无此代码
  • 操作步骤

在这里插入图片描述
在这里插入图片描述

  • 点击clone

在这里插入图片描述
在这里插入图片描述

推送Pycharm新项目到Gitee远程仓库

在这里插入图片描述
在这里插入图片描述

  • 输入账号密码后点击share
  • 点击add
    在这里插入图片描述
  • 功能列表中VCS消失,项目转变为git接管
将Pycharm代码push到Gitee远程仓库(上图小矩形)
  1. 新增文件,自动弹窗,右键Demi–>Git–>Add在这里插入图片描述
  2. 点击Git–>Commit提交(此时commit提交到了本地仓库)
    1
  3. 确认被提交的文件选中
    步骤3
    选中文件
    在这里插入图片描述
    点击push后,进入gitee查看
    在这里插入图片描述
将Gitee仓库的新代码pull到Pycharm中
  • 新建一个文件
    在这里插入图片描述
  • 写入名称,内容点击提交
    在这里插入图片描述
  • 在pycharm中,右键git–>pull
    在这里插入图片描述
    在这里插入图片描述
  • 注:pull时会自动对比差距,导入新建的内容
冲突解决
  • 应用场景 : pycharm本地项目,已经被gitee管理,gitee上与本地对同一个文件,做了不同的修改,当本身push时,就会产生冲突!
  • 具体操作步骤
    • 在gitee的文件中做更改
    • 在pycharm中同名文件做更改,commit提交到本地仓库,再点击push
    • 提示,点击merge合并处理

在这里插入图片描述
在这里插入图片描述

  • 点击箭头会加入(左侧本地,中间合并结果,右侧gitee代码)
    在这里插入图片描述
  • 合并后push依旧提示拒绝推进
    在这里插入图片描述
    • 解决办法:将gitee中的版本2pull下来,再push就可以成功推送到gitee

小结: 使用git的习惯,先pull再push

Jenkins

  • 简介 : 基于java开发(需要jdk)的一种开源,跨平台(win,linux,macos)的持续集成工具
  • 安装java 8并配置环境变量
    • 配hi环境变量的目的 : 能在任意一个目录下,使用java命令
系统设置
  1. Manage Jenkins --> Configure System
  2. Jenkins Location:
    • 系统管理员邮箱地址 --> 自己申请的邮箱
  3. Extend E-mail Notification:(点击高级)
    • SMTP Username : —> 自己申请的邮箱
    • SMTP Password : —> POP3/SMTP服务授权码
  4. 邮件通知 : (勾选SMTP认证)
    • 用户名 : —> 自己申请的邮箱
    • 密码 : —> POP3/SMTP 服务授权码
  5. 点击应用 —> 保存
持续集成postman
  • 准备工作
    • postman中运行一遍用例集,没有问题后导出
    • 注意导出用例集和环境,名称中没有中文
    • 获取文件地址:摁住shift键右键—>选中文件—>复制文件地址,得到文件绝对路径
    • 执行命令生成测试报告

在这里插入图片描述

# 报告代码
newman run 测试用例集名.json -e 环境变量.json -d 数据文件.json -r html --reporter-html-export 测试报告名.html
# 本人电脑无法使用htmlextra故省略不写了
手动构建----Jenkins管理
  1. 选择新建
    在这里插入图片描述
  2. 点击构建–> 添加构建步骤–>执行windows批处理命令
    在这里插入图片描述
    在这里插入图片描述
  3. 选择同页面publish-build-actions中的publish html reports,点击新增
  4. 写入输出测试报告的目录,index中是生成的报告名,与前文名字一致
  5. 点击apply—>save即可
  6. 回到初始页面,点击build now立即构建,点击时间点会跳转页面,方便调试
    在这里插入图片描述
  7. 进入页面点击console-output,查看命令执行结果(我这里有问题)
    在这里插入图片描述
自动构建----使用jenkins

在这里插入图片描述
在这里插入图片描述

  • 报告可能样式错乱,更正参数得到格式正确报告
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar Jenkins.war
持续集成-代码
  • 准备工作
    • 将代码上传到Gitee中
    • 将仓库设置为开源
手动构建----使用jenkins管理
  1. 新建任务—>进入任务的configure界面
  2. Source Code Management设置为Git(项目设置为开源)
  3. 在Git选项弹出框中,填入仓库url地址
  4. 下滑选择构建环境–>构建–>增加构建步骤–>选择execute windows选项,命令填入pytest
  5. 构建后的操作选择publish HTML reports–>点击新增(填入与pytest.ini中代码保持一致)
    在这里插入图片描述
  6. 设置发邮件,点击"增加构建后操作步骤",选择Editable Email Notification设置 邮件发送测试报告
    • 在Project Recipient List,$DEFAULT_RECIPIENT,写入新邮箱,与原有内容使用英文逗号分开
    • Content Type选择HTML选项
    • Default Content填入邮件测试报告模板
      在这里插入图片描述
  7. 点击高级设置—>Triggers–>整个框点×,点击Add Triggers—>Always,点击应用保存即可.
    在这里插入图片描述
  8. 点击build now生成测试报告,点击时间进入查看测试是否结束
自动构建----使用jenkins管理
  1. 点击 “配置” 查看,在 “构建触发器” 中选择 "Build periodically(定期的) "添加定时构建
  2. “日程表” 中写入: * * * * * (空格隔分) —> 对应分 时 日月年
    • 如 10 16 * * * 就是每天16点10分执行
  3. “构建触发器” 标签中选择 “Poll SCM”,写入*/1 * * * *(空格分隔)
    • 代表每一分钟检查一次gitee上的代码,查验是否有更新
  4. Pycharm修改代码Commit ,Push或者直接在gitee上修改,导致Gitee上的代码有变动,触发Jenkins自动构建.
    在这里插入图片描述
    有些遗漏,复习的时候再来补充吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910634.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FSMC控制LCD(TFTLCD:Z350IT002)显示案例

显存不一定要擦除,只要来一个地址就可以对其进行读写,而且一般的需求是不停的写入(不同的像素点给不同的值),所以是RAM(flash和E2PROM要擦除才能写入),由于FSMC没有DRAM所以我们只能…

云原生周刊:Argo CD v3.1 正式发布

开源项目推荐 Kubewall Kubewall 是一个轻量级的开源 Kubernetes 仪表盘,支持多集群管理,主打单二进制部署和浏览器访问,提供实时资源监控、YAML 编辑、拓扑视图、日志查看等功能。它使用 Go 与 React 构建,支持通过 Docker、He…

Aerotech系列(3)开发库介绍

库对象模型 名空间列表 NamespaceDescriptionAerotech.A3200 The main namespace of the Aerotech A3200 .NET library Aerotech.A3200.Callbacks Contains the classes that allow interacting with callbacks Aerotech.A3200.Commands Contains the classes that allows …

Spring--IOC容器的一些扩展属性

一、BeanFactoryPostProcessor和BeanPostProcessor BeanFactoryPostProcessor的作用是在实例化前修改BeanDefinition的属性 BeanPostProcessor的作用是在bean完成创建实例、填充属性之后,初始化阶段的前后都会对bean进行操作,使用postProcessBeforeIni…

8w字:推荐系统技术体系深度解析:从理论基础到工业实践的完整指南

插话:刚接触推荐系统还是大一下作比赛,然后找资料,顺便在巧合下在“识典百科”(现在叫快懂百科,抖音的,改好几回名了,还要一条条插入引用资料,现在看来,好像抖音也不在乎…

RA4M2开发IOT(8)----IIC驱动OLED

RA4M2开发IOT.8--IIC驱动OLED 概述视频教学样品申请硬件准备参考程序修改IIC驱动OLED属性配置移植SSD1306字符取模ASCII显示图片取模显示图片 概述 本章旨在通过 IC 接口驱动 OLED 显示屏(常见型号如 SSD1306),实现图形和文本的显示功能。OL…

数组题解——​轮转数组【LeetCode】

189. 轮转数组 通过三次反转操作,可以实现数组的轮转: 反转整个数组: 将数组完全反转,使得原数组的后 k 个元素移动到数组的前面。反转前 k 个元素: 将前 k 个元素反转,恢复它们的原始顺序。反转后 n - k 个元素: 将后 n - k 个元…

AR 眼镜之-条形码识别-实现方案

目录 📂 前言 AR 眼镜系统版本 条形码识别 1. 🔱 技术方案 1.1 技术方案概述 1.2 实现方案 1)相机App显示模块 2)算法so库JNI模块 3)算法条形码识别模块 2. 💠 实现相机App显示模块 2.1 创建 Ba…

华为云 Flexus+DeepSeek 征文|基于 CCE 集群部署 Dify 平台工作流:科研论文翻译与 SEO 优化工具的全流程设计实践

华为云 FlexusDeepSeek 征文|基于 CCE 集群部署 Dify 平台工作流:科研论文翻译与 SEO 优化工具的全流程设计实践 背景 作为被科研论文折磨已久的大学生,希望研究成果能被更多人看到,尤其是在学术全球化的趋势下,论文翻…

C++对象继承详解:从入门到精通

继承是面向对象编程的三大特性之一,也是C中实现代码复用和多态的重要机制。本文将带你深入理解C继承的核心概念与应用。 一、继承的基本概念 1.1 什么是继承? 继承允许我们基于已有的类创建新类,新类(派生类)可以继…

Jenkins安装与配置全攻略:从入门到高级功能实战

在DevOps实践中,Jenkins作为最流行的持续集成工具之一,扮演着至关重要的角色。本文将全面介绍Jenkins的安装、配置及高级功能使用,帮助开发、运维和测试团队快速搭建高效的CI/CD流水线。 一、Jenkins安装 1.1 环境准备 Jenkins官网:https://jenkins.io 注意:Jenkins 2…

[OS_26] 计算机系统安全 | CIA原则 | 侧信道攻击

系统调用是唯一访问操作系统对象的途径 拒绝越权访问 →→ Confidentiality拒绝越权修改 →→ Integrity(再加上公平资源调度 →→ Availability) 在操作系统 API 上,我们可以构建命令行工具、编译器、数据库、浏览器等丰富的应用。 当越来越多用户开始共享计算机、…

Chromium 136 编译指南 macOS篇:编译优化技巧(六)

1. 引言 在现代软件开发的高效化进程中,编译优化已经从简单的性能调优发展为一门综合性的工程科学。对于Chromium 136这样一个包含超过2500万行代码的超大规模项目而言,编译时间往往成为制约开发效率的关键瓶颈。在典型的开发场景中,一次完整…

Spark教程6:Spark 底层执行原理详解

文章目录 一、整体架构概述二、核心组件详解1. SparkContext2. DAG Scheduler3. Task Scheduler4. Executor 三、作业执行流程1. DAG 生成与 Stage 划分2. Task 调度与执行3. 内存管理 四、Shuffle 机制详解1. Shuffle 过程2. Shuffle 优化 五、内存管理机制1. 统一内存管理&am…

xlsx-style 插件批量导出多个sheet表格excel中遇到的问题及解决

Vue2中 前端界面导出表格,使用XLSXS插件版本(^0.8.13)导出表格存在表格背景颜色无法正常展示,百分比数据没有正常展示 【有条件的尽量先升级高版本插件,此插件版本对样式支持度不够】 优先考虑插件版本升级 同样的使用方法在vue3中没有出现错…

Java后端与Vue前端项目部署全流程:从环境配置到Nginx反向代理

文章目录 1. 准备项目所需的环境2. 后端项目打包步骤 1:使用 Maven 打包步骤 2:定位生成的 JAR 包步骤 3:上传 JAR 包到 Linux 系统步骤 4:验证 Java 环境步骤 5:启动 JAR 包 3. 前端项目打包步骤 1:执行 B…

Mybatis踩坑之一天

background: 对接AML系统,日间实时需要送交易对手要素过去(目前主要是交易对手全名),夜间需要将历史交易送AML进行回溯,交互方式是文件。文件要素为日期、对手类型、对手名、交易流水之类。 设置对送AML的文件设计表…

【PyTorch】分布式训练报错记录-ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1)

最近,我在服务器上起基于PyTorch分布式框架的预训练实验,起初实验都在顺利进行,但是当我们把模型的深度与宽度调大之后,模型在训练几代之后便会出现如下的报错: WARNING:torch.distributed.elastic.multiprocessing.a…

有哪些词编码模型

有哪些词编码模型 词编码模型:是将自然语言符号映射为稠密的高维向量,使语义相近的词汇在向量空间中位置接近。 不过,也有部分模型会考虑字母或字符信息,如基于字节对编码(BPE)的模型会将单词拆分成子词,这里的子词可能是字母组合。 词编码模型的原理主要是通过机器学…

Mono 功能介绍与使用示例

Mono 功能介绍与使用示例 一、核心概念与特性 Mono 是 Spring Reactor 框架中的核心组件,属于响应式编程(Reactive Programming)模型,专注于处理包含 0 或 1 个元素 的异步序列[1][2][5]。其核心特点包括: 异步非阻…