写在开头 最近在学习Jenkins打包上传的相关知识,于是将相关的知识点记录下来
Jenkins是什么?
Jenkins是一个开源的项目,我们可以在GitHub上看到其相关信息。
github链接如下:github.com/jenkinsci/j…
我们可以看到,Jenkins官方对其的定位为:
Jenkins是一个开源软件项目,是基于java开发的一种`持续集成`工具.
用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
更多相关的,也可以查看Jenkins的文档:www.jenkins.io/zh/doc/pipe…
Jenkins的功能
Jenkins的主要功能是将项目中重复执行的工作自动化的执行。如软件的建造(构建)和在配置文件下设置的job。具体功能大概有:
1.软件的持续构建和测试,Jenkins提供了一个系统,使开发人员可以很容易的将改变集成到工程中。自动化的,持续的构建有利于提高开发效率。
2.监视job的执行,job可以实现很多的功能,Jenkins可以对这些项目进行显示,让用户更清楚的注意到这些损毁的job。
3.项目源代码修改的检测,jenkins能够从项目的Subversion/CVS生成最近修改的集合列表,且不会增加Subversion/CVS Repository的负载。
4.分布式构建,Jenkins可以将工程构建到多台机器,更好地利用硬件资源,节省时间。
其他,Jenkins代码开源,用户可以自己编写插件。所以jenkins可以实现很多的功能。
Jenkins能做到什么事情?
Jenkins是一个用于程序持续集成的工具,我每天都听到持续集成的这个术语,但好像对持续集成的理解一直没有很深入。
持续集成
**持续集成**(Continuous Integration),简称 **CI**。
频繁地将代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,就不能集成。
通过持续集成,团队可以快速从一个功能到另外一个功能。
持续集成是一种 DevOps 软件开发实践。采用持续集成时,开发人员会定期将代码变更合并到一个中央存储库中,之后系统会自动运行构建和测试操作。持续集成通常是指软件发布流程的构建或集成阶段,需要用到自动化组件(例如 CI 或构建服务)和文化组件(例如学习频繁地集成)。持续集成的主要目标是更快发现并解决缺陷,提高软件质量,并减少验证和发布新软件更新所需的时间。
持续集成的优势
Jenkins快速入门
Jenkins持续集成
- 首先,开发人员将代码提交到 Git 仓库
- 然后 Jenkins 使用 Git 插件来拉取 Git 仓库的代码,然后配合 JDK、Maven 等软件完成代码编译,测试、审查、测试和打包等工作
- 最后 Jenkins 将生成的 jar/war 推送到 测试/生产 服务器 ,供用户访问
Jenkins最佳实践
Jenkins 中自动构建项目的类型有很多,常用的有以下三种:
- 自由风格软件项目(FreeStyle Project)
- Maven 项目(Maven Project)
- 流水线项目(Pipeline Project)
Jenkins与流水线
Pipeline 就是一套运行在 Jenkins 上的工作流框架.
将原来独立运行与单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化工作
相关术语:
stages: 代表整个流水线的所有执行阶段,通常 stages 只有1个,里面包含多个 stage
stage: 代表一个阶段内需要执行的逻辑
steps :里面是 shell 脚本,git 拉取代码,ssh 远程发布任意内容
TO DO
-
如何复制一条流水线
-
如何修改流水线参数
-
如何打包上传部署