小白进公司不会用Jenkins,一文带你流利使用

起因

需要将应用从阿里云迁移到微软云,重新部署应用。

一. 前置知识学习

CI/CD 是一组经常在现代软件开发中提到的实践,代表持续集成(Continuous Integration)和持续交付/部署(Continuous Delivery/Deployment)。这些实践旨在缩短软件开发周期、提高软件质量,并使软件的构建、测试和发布更加高效和自动化。

持续集成 (CI)

定义:

  • 持续集成 是一种软件开发实践,在这种实践中,开发人员频繁地(通常是每天多次)将代码更改集成到共享存储库中。每次代码提交后,自动执行构建和测试,以确保新更改没有破坏任何东西并且与整个系统兼容。

目的:

  • 早发现问题:通过频繁集成,可以尽早发现和解决冲突和错误,减少集成问题。
  • 提高软件质量:自动化测试保证了新的更改没有破坏现有功能。
  • 减少手动过程:自动化构建和测试减少了重复的手动工作。

持续交付/部署 (CD)

定义:

  • 持续交付 是 CI 的扩展,它确保软件可以通过自动化测试后随时发布到生产环境,但需要手动触发最终的生产部署。
  • 持续部署 是持续交付的进一步扩展,其中软件的发布过程也是自动化的,代码更改在通过所有测试后会自动部署到生产环境。

目的:

  • 加快发布速度:自动化的发布流程可以加快从开发到生产的时间。
  • 降低发布风险:通过频繁且小的发布,减少每次部署的风险。
  • 提高生产率和可靠性:自动化和标准化的发布流程增加了部署的可靠性,并允许团队更快地响应市场变化。

工具和实现

实现 CI/CD 通常涉及使用各种工具,如 Jenkins、GitLab CI、Travis CI、CircleCI、Azure DevOps 等,这些工具可以帮助自动化构建、测试和部署过程。

总的来说,CI/CD 是现代敏捷软件开发的关键组成部分,帮助团队快速、高效地交付高质量的软件产品。

什么是Jenkins

Jenkins 是一个开源的自动化服务器,广泛用于实现持续集成和持续部署(CI/CD)的自动化流程。它是软件开发中用于自动化各种任务的一个非常强大的工具,包括构建、测试和部署应用程序。

主要特点

  1. 开源:Jenkins 是一个基于 MIT 许可的开源项目,允许免费使用和修改。
  2. 插件系统:Jenkins 拥有一个庞大的插件生态系统,提供超过 1500 个插件,支持几乎所有的开发、部署和自动化工具。
  3. 平台无关性:Jenkins 可以在任何支持 Java 的平台上运行,包括 Windows、MacOS 和各种版本的 UNIX/Linux。
  4. 易于安装和配置:Jenkins 可以通过 WAR 文件或使用包管理器(如 apt、yum)进行安装。它还提供了一个易于使用的 Web 界面来配置和管理。
  5. 支持多种版本控制系统:Jenkins 支持多种版本控制工具,如 Git、Subversion、Mercurial 等。
  6. 构建工具支持:支持多种构建工具,如 Maven、Ant、Gradle 等。
  7. 自动化构建/测试/部署:可以配置 Jenkins 任务来自动化代码的构建、测试和部署。
  8. 工作流编排:通过 Jenkins Pipeline,可以编写复杂的工作流程,以实现自动化的持续集成/持续部署流程。
  9. 分布式构建:Jenkins 支持分布式架构,允许将工作负载分配到多个机器,从而提高构建、测试和部署的效率。

使用场景

  • 自动化构建:自动编译代码,生成构建产物。
  • 持续集成:自动化合并代码更改,确保集成后的代码仍然可用。
  • 自动化测试:运行自动化测试脚本,确保代码更改不会破坏现有功能。
  • 持续部署:自动将应用程序部署到生产环境或测试环境。

总结

Jenkins 由于其灵活性、强大的功能和活跃的社区支持,在全球范围内被广泛使用,是实现 CI/CD 实践的关键工具之一。通过 Jenkins,团队可以大大提高软件开发的效率和质量,加快产品上市时间。

二. Jenkins图形化界面使用

如果我们是在中大型公司,一般会有专门的基础部门搭建好Jenkins,我们只需在内网找到地址并且通过自己账号密码登录即可,小石看到的页面是这种。

是不是一看到这些英文名称很迷?没关系,作为一个优秀的程序员,使用谷歌的中文翻译功能是基操,瞬间一目了然了有没有

拿到admin账号后,点击具体的一个项目,会进到如下页面

点击Build Now后,会看到下面正在构建镜像

点击该项目后点击"Console Output"能看到控制台具体报的错

如下可以看到本次报错是钉钉机器人连接超时导致的。因为小石这个Jenkins的网络问题,连接不到其他环境。

如果成功的话会是这样,有个蓝色图标

好了,大家已经掌握Jenkins基本的图形化使用了,快速去构建你的应用吧!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(JAVA)-(多线程)-线程池

线程池,顾名思义就是存放线程的池子,当有任务时能够随时取用线程,任务结束后能够放回线程池中。如果把线程比成碗,线程池就像一个碗柜一样。 使用线程池的好处: 1.当有大量线程对象时,减少了线程创建销毁…

ssm基于vue的大学生社团管理系统的设计与实现+vue论文

基于vue的大学生社团管理系统的设计与实现 计算机科学与技术 2022届 姓名 学号 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。传统的大学生社团信息管理模式,采用人工登…

【Vue2+3入门到实战】(13)插槽<slot>详细示例及自定义组件的创建与使用代码示例 详解

目录 一、学习目标1.插槽2.综合案例:商品列表 一、插槽-默认插槽1.作用2.需求3.问题4.插槽的基本语法5.代码示例6.总结 二、插槽-后备内容(默认值)1.问题2.插槽的后备内容3.语法4.效果5.代码示例 三、插槽-具名插槽1.需求2.具名插槽语法3.v-s…

Apache Flink连载(二十):Flink On Yarn运行 - Yarn Per-Job模式(弃用)

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. 任务提交命令 2. 任务…

使用electron属性实现保存图片并获取图片的磁盘路径

在普通的网页开发中,JavaScript由于安全性的考虑,通常是无法直接获取到客户端的磁盘路径的。浏览器出于隐私和安全原因对此类信息进行了限制。 在浏览器环境下,JavaScript主要通过Web APIs来与浏览器进行交互,而这些API通常受到浏…

lottie 动画在 vue 中的使用

前言 最近我所负责的项目中采用了动画效果,最早使用 gif 来实现。然而,在实践过程中,我发现 gif 格式的动画在 git 中出现了明显的锯齿感,这让我非常困扰。为了追求更完美的表现效果,我最终选择了 lottie 来实现我的动…

C++核心编程四(继承、多态、virtual关键字、文件操作)

文章目录 继承继承方式继承中的对象模型继承中构造和析构顺序继承同名成员处理方式继承同名<静态>成员处理方式多继承语法菱形继承多态多态案例1、计算器类 纯虚函数和抽象类多态案例2、制作饮品 虚析构和纯虚析构多态案例3、电脑组装 文件写操作读文件二进制写文件二进制…

ClickHouse基础知识(四):ClickHouse 引擎详解

1. 表引擎的使用 表引擎是 ClickHouse 的一大特色。可以说&#xff0c; 表引擎决定了如何存储表的数据。包括&#xff1a; ➢ 数据的存储方式和位置&#xff0c;写到哪里以及从哪里读取数据。 默认存放在/var/lib/clickhouse/data ➢ 支持哪些查询以及如何支持。 ➢ 并发数…

CUDA驱动深度学习发展 - 技术全解与实战

全面介绍CUDA与pytorch cuda实战 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&#xff0c;项目管理专业人士&…

【SD】保持图片大小 精细化处理 高清放大

首先开启 ADetailer可以修复手部&#xff0c;脸部&#xff0c;全身。 生成一张图片。 best quality,masterpiece,simple_white_background,golden and white theme,Sense of coordination,sense of order,mathematics beauty,(((cover design))),(((((cover art))))),((trim)),…

喜讯!云起无垠获评ISC 2023数字安全创新能力百强双料大奖

近日&#xff0c;第四届数字安全“奥斯卡”——ISC 2023数字安全创新能力百强评选活动在北京圆满闭幕。本次活动旨在挖掘和孵化数字安全领域的“专精特新”力量&#xff0c;共同推进数字中国的安全建设。 在本次评选中&#xff0c;云起无垠凭借其在软件供应链安全领域的创新实…

SpringBoot 3.2.0 结合Redisson接入Redis

依赖版本 JDK 17 Spring Boot 3.2.0 Redisson 3.25.0 工程源码&#xff1a;Gitee 集成Redis步骤 导入依赖 <properties><redisson.version>3.25.0</redisson.version> </properties> <dependencies><dependency><groupId>org.pr…

Vue3-30-路由-嵌套路由的基本使用

什么是嵌套路由 嵌套路由 &#xff1a;就是一个组件内部还希望展示其他的组件&#xff0c;使用嵌套的方式实现页面组件的渲染。 就像 根组件 通过路由渲染 普通组件一样&#xff0c;嵌套路由也是一样的道理。 嵌套路由的相关关键配置 1、<router-view> 标签 声明 被嵌套组…

Echarts中饼图-实现放大显示数据

示例 代码演示 option {tooltip: {trigger: item},legend: {top: 5%,left: center},series: [{name: Access From,type: pie,radius: [40%, 70%],avoidLabelOverlap: false,label: {show: false,position: center},emphasis: {scale: true,//是否开启高亮后扇区的放大效果。s…

python查找mongo中符合条件的json记录

一、需求&#xff1a; 之前有次需要临时查找mongo中存储的json串&#xff0c;符合特定条件的记录&#xff1b; 举个例子&#xff0c;mongo中记录如下图&#xff1a; 其中每条存储的数据大概为&#xff1a; [{"createUser": "Zxtech","paramName&qu…

LVM逻辑卷与扩容

目录 一.LVM&#xff1a; 1.什么是LVM&#xff1a; 2.LVM的基本核心组件&#xff1a; 3.LVM的基本命令&#xff1a; 二.逻辑卷的创建&#xff1a; 第一步&#xff0c;我们先要为虚拟机添加硬盘 然后我们要添加依赖包 然后我们要进行磁盘分区 再添加好分区后&#xff0…

回顾2023,展望2024

时光飞逝&#xff0c;光阴似箭&#xff0c;转眼间又到了一年的年末&#xff0c;现在是2023年12月29日&#xff0c;再过两天就要元旦了&#xff0c;我们也要跨入2024年了。 记录自己的总结&#xff0c;一直想写&#xff0c;不知从何写起&#xff0c;在这一年中&#xff0c;有深夜…

程序员实现财富自由的十种方法!

程序员肯定都有过一夜暴富的梦想&#xff0c;也许是兼职接单&#xff0c;也许是成为炙手可热的大网红&#xff0c;也许只是平凡的中张百万大奖彩票…… 除去运气超好实力拔群以外&#xff0c;大多数程序员是很难在短时间内实现财富自由的。虽是如此&#xff0c;但搞钱对于程序…

Unity Shader-真实下雨路面

Unity Shader-真实下雨路面 简介素材1.准备插件Amplify Shader Editor&#xff08;这里我使用的是1.6.4最新版&#xff09;2.贴纸和切图d 一、创建一个Shader Surface&#xff0c;实现气泡播放效果二、叠加一次气泡播放效果&#xff0c;使其看起来更多&#xff0c;更无序三、小…

Matplotlib_plt.subplots 遇见中文乱码解决方案

文章目录 一、现象&#xff1a;二、解决方案1.将 **SimHei.ttf** &#xff0c;下载到当前运行目录中2.绘图中涉及标题、横纵坐标等&#xff0c;加上 **FontProperties font** 即可 环境说明&#xff1a;macOS系统 一、现象&#xff1a; 原先代码是这样的 import numpy as n…