使用Jenkins完成前端自动化部署

218 阅读7分钟

任务背景

公司前端项目每次部署需要在本地编译,打包,公司要求前后端需要在指定服务器上进行编译并打包,并且随着公司项目的增加,每次部署新功能需要手动同步各个项目,这个操作是重复性的,并且是可替代的,基于这个需求,开始研究前端自动化部署。

技术选型

1 Jenkins

Jenkins是一款用Java编写的开源的CI工具。当Oracle收购Sun Microsystems时,它作为Hudson的分支被开发出来。Jenkins是一个跨平台的CI工具,它通过GUI界面和控制台命令进行配置。

Jenkins非常灵活,因为它可以通过插件扩展功能。Jenkins插件非常好用,同时你可以容易地添加自己的插件。除了它的扩展性之外,Jenkins还有另一个非常好的功能——它可以在多台机器上进行分布式地构建和负载测试。Jenkins是根据MIT许可协议发布的,因此可以自由地使用和分发。Cloudbees还提供Jenkins in Cloud形式的托管解决方案。

Jenkins是最好的持续集成工具之一,它既强大又灵活。学习它可能要花费一些时间,但是如果你需要一个灵活的持续集成解决方案,那么学习如何使用它将是非常值得的。

2 ElectricFlow

ElectricFlow 是一个发布自动化工具,提供免费的社区版本,你可以在VirtualBox上运行。 ElecticFlow支持大量插件和基于Groovy的 DSL,CLI,APIs。

3 Microsoft Visual Studio

微软DevOps产品的基础之一是 Visual Studio。 Visual Studio允许用户定义版本定义,自动化运行,跟踪版本等等。

4 Octopus Deploy

Octopus Deploy创建目的是为了.NET应用的自动化部署。你可以在一台服务器安装或在Azure里做成实例。

5 IBM UrbanCode

2013年被IBM公司收购,UrbanCode 自动化部署到本地或云环境。

6 AWS CodeDeploy

Amazon的自动化部署工具CodeDeploy,有着令人印象深刻的客户名单、平台与语言无关。

7 DeployBot

DeployBot 可以链接任何Git存储库,并且允许手动或自动部署到多种环境。DeployBot提供大量集成,包括通过Slack部署的能力。

8 Shippable

Shippable 规定了它们自己的“DevOps支柱”和它们自己的CI平台,运行依靠称为minions的基于Docker的容器。

9 TeamCity

TeamCity 是一个来自Jet Brains的CI服务器。TeamCity 有智能的配置功能和拥有官方Docker镜像服务器和代理。

10 Bamboo

Bamboo Server 是CI,由来自在Atlassian的人们提供,他们是Jira和Confluence的制造者。Bamboo公布“integrations that matter”并提供一个“small teams”包,捐赠给 Room to Read慈善事业。

初识Jenkins

Jenkins是什么

Jenkins是一个可扩展的持续集成引擎。

持续集成,就是通常所说的CI(Continues Integration),可以说是现代软件技术开发的基础。

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也意味着每天可能会发生多次集成。

每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

Jenkins的特性

  1. 易于安装。只要把jenkins.war包部署到servlet容器即可,不需要数据库的支持。
  2. 易于配置。所有的配置都是通过其提供的 web 界面实现得。
  3. 集成 RSS/E-mail 通过 RSS 发布构建结果或当构建完成时通过 E-mail 通知相关人员以及负责人。
  4. 生成Junit/testNG/HTMLTestRunner测试报告
  5. 分布式构建支持jenkins能够让多台计算机一起构建、测试。
  6. 文件识别。 jenkins 能够跟踪那次构建生成那些jar,那次构建使用哪个版本的jar等。
  7. 插件支持。支持扩展插件,你可以开发适合自己团队使用的工具。

image.png

下载Jenkins

进入jenkins官网下载 image.png

Jenkins的安装

Jenkins 官方网站提供了不同操作系统的安装包,您可以选择适合自己操作系统的版本进行下载。Jenkins 官方网站地址为:www.jenkins.io/download/。 对于不同操作系统,Jenkins 的安装方法也有所不同:

  • Windows:双击下载的 Jenkins 安装包,按照向导进行安装。

  • Linux:使用命令行下载 Jenkins 安装包并解压,执行安装命令。例如,在 Ubuntu 中可以使用以下命令进行安装:

    wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
    sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt-get update
    sudo apt-get install jenkins
    
    
  • macOS:使用 Homebrew 进行安装,执行以下命令:

    brew install jenkins-lts
    

启动Jenkins

启动 Jenkins 服务后,可以通过浏览器访问 Jenkins 网页界面。启动 Jenkins 的命令和方法也有所不同:

  • Windows:在开始菜单中找到 Jenkins 并启动服务。
  • Linux:使用以下命令启动 Jenkins 服务:
    sudo systemctl start jenkins
    
  • macOS:使用以下命令启动 Jenkins 服务:
    brew services start jenkins-lts
    

访问Jenkins

启动 Jenkins 服务后,可以通过浏览器访问 Jenkins 网页界面,默认的访问地址为:http://localhost:8080。在第一次启动 Jenkins 时,需要输入初始密码进行安装,初始密码在 Jenkins 安装目录的 initialAdminPassword 文件中。

image.png4

image.png

Jenkins常用命令

1、如果是刚安装好jenkins,启动Jenkins到Jenkins根目录下,输入命令:java -jar jenkins.war

2、如果已经启动了Jenkins,想要停止Jenkins服务,输入命令:net stop jenkins

3、如果关闭了Jenkins服务,想要再启动,输入命令:net start jenkins

4、如果想直接重启Jenkins,在浏览器地址后加上restart,即:http://localhost:8080/restart

Jenkins的使用

  1. 新建项目

在 Jenkins 中,每个项目都对应一个任务(Job),可通过 Web 界面新建任务,选择项目类型、源代码管理工具、构建步骤等。在新建项目时需要配置任务名称、源代码仓库、构建触发器、构建步骤等信息。

  1. 配置构建步骤

Jenkins 支持多种构建步骤,如编译、测试、打包、部署等,具体可以根据项目需求进行配置。对于编译、测试等步骤,可以选择相应的工具,如 Maven、Gradle、Junit 等。对于部署等步骤,可以选择相应的插件,如 Deploy to Container、Deploy to Kubernetes 等。

  1. 执行构建

在项目配置完成后,可以手动或自动触发构建。手动触发构建可在任务界面点击“立即构建”按钮,自动触发构建可以通过定时器、源代码变更等方式进行配置。

  1. 查看构建结果

构建完成后,可以查看构建结果和构建日志。Jenkins 支持多种报表和图表展示构建结果,如测试覆盖率、构建时间、构建稳定性等。如果构建失败,可以查看构建日志和错误信息,进行排查和修复。

  1. 使用插件和扩展

Jenkins 支持多种插件和扩展,可以根据项目需求进行安装和使用。例如,可以安装 Git 插件进行源代码管理、安装 Checkstyle 插件进行代码质量检查等。同时,Jenkins 还支持自定义插件和扩展,满足用户的特定需求。

Jenkins的迁移

打包Jenkins的主目录,复制到新的服务器上。