目录
步骤三、丢弃旧的构建,配置好后点击应用(用于远程工程代码下拉pull保存设置以及运行设置)
步骤七、选择执行命令对应的系统:Window或者LInux:
注意:在 Jenkins 中工具配置中需要指定 Allure工具,步骤如下:
1、引言
1.1、持续部署的概念
-
持续部署(Continuous Deployment, CD)是软件开发中的一种策略,它指的是代码通过评审后(或者是通过自动化测试后),自动部署到生产环境。持续部署是持续交付(Continuous Delivery, CD)的下一步,目标是确保代码在任何时刻都是可部署的,可以直接进入生产阶段。
-
代码提交:开发者向代码仓库提交代码。
-
自动化测试:提交的代码会触发一系列预定义的自动化测试,包括单元测试、集成测试和端到端测试。
-
构建:通过测试后,代码会被合并到主干并进行构建,生成可运行的代码。
-
部署:构建成功后,代码会自动部署到生产环境。
1.2、持续部署的优势和挑战
-
优势:
-
快速反馈:持续部署可以让开发团队快速收集真实用户的反馈,从而快速迭代和改进产品。
-
减少手动干预:自动化部署减少了人工干预,提高了效率和准确性。
-
降低风险:通过自动化测试和持续部署,可以减少生产环境中的错误和风险。
-
-
挑战:
-
环境差异:不同环境(如开发、测试、生产环境)的配置和管理复杂,可能导致部署失败。
-
业务依赖:某些功能可能需要等待其他功能完成才能上线,这可能影响持续部署的实施
-
1.3、持续部署管理工具Jenkins在自动化测试中的作用
-
通过Jenkins配置自动化代码运行,可以随时构建自动化验证项目的功能是否正常。项目功能代码集成到主干之前, 必须通过所有自动化测试用例, 只要有一个测试用例失败, 就不允许集成到主干;快速发现错误,每完成一点更新, 项目功能代码就集成到主干,防止分支大幅度偏离主干。
2、Jenkins概述
2.1、Jenkins的定义和历史
- Jenkins是一个开源的自动化服务器,主要用于持续集成(CI)和持续交付(CD)工作流的管理和执行。它通过自动化软件开发生命周期中的构建、测试和部署过程,帮助开发团队更快、更高效地交付软件产品
2.2、Jenkins的主要特点和优势
-
开源和免费:Jenkins是一个开源项目,这意味着它可以免费使用,并且有一个活跃的社区支持和贡献代码。
-
易于安装和使用:Jenkins提供了简单的安装过程,并且有一个直观的用户界面,使得新用户可以快速上手。
-
灵活性和可扩展性:Jenkins的核心功能相对简单,但它通过插件系统提供了极大的灵活性。用户可以根据自己的需求安装和配置各种插件来扩展Jenkins的功能。
-
丰富的插件生态:Jenkins拥有一个庞大的插件库,这些插件可以帮助用户集成各种工具和框架,如版本控制系统(如Git)、构建工具(如Maven、Gradle)、测试框架等。
-
持续集成和持续部署:Jenkins支持自动化的构建和测试流程,可以帮助团队实现持续集成(CI),并且可以进一步实现持续部署(CD)。
-
多平台支持:Jenkins可以在多种操作系统上运行,包括Linux、Windows和macOS。
-
分布式构建:Jenkins支持分布式构建,允许用户在多个节点上并行执行构建任务,这有助于提高构建效率和缩短构建时间。
-
易于集成:Jenkins可以轻松集成到现有的开发和部署流程中,无论是小型项目还是大型企业级项目。
-
实时监控和报告:Jenkins提供了实时的构建状态监控和详细的构建报告,帮助团队跟踪构建进度和质量。
-
可定制的构建触发器:Jenkins支持多种触发构建的方式,包括定时触发、源代码变更触发等。
-
环境友好:Jenkins可以在各种环境中运行,包括物理服务器、虚拟机、容器(如Docker)和云平台。
-
社区支持:Jenkins有一个活跃的社区,用户可以在社区中寻求帮助、分享经验和最佳实践。
-
安全性:Jenkins提供了多种安全特性,包括用户认证、权限控制和安全审计。
2.3、Jenkins与其他的CI/CD的比较
-
Jenkins vs GoCD:
- GoCD以效率和可扩展性脱颖而出,擅长通过用户友好的仪表板简化复杂的工作流程。
- GoCD支持并行和顺序执行,可以轻松配置依赖项,并且提供实时的价值流图来可视化端到端工作流程。
- Jenkins则以其丰富的插件生态和灵活性著称,但可能在新用户设置上较为复杂。
-
Jenkins vs GitLab CI/CD:
- GitLab CI/CD与GitLab代码托管、项目管理等功能紧密集成,支持YAML文件配置,易于上手。
- Jenkins提供了丰富的功能和插件来支持CI/CD过程,但其架构和扩展性可能与Tekton有所不同。
- GitLab CI/CD提供了更好的Docker集成和有向无环图pipeline的机会,而Jenkins则提供了大量的插件库和自托管的优势。
-
Jenkins vs CircleCI:
- CircleCI是一个基于云的CI/CD平台,支持多种编程语言和框架,支持并行任务执行,提高构建速度。
- CircleCI的配置简单,支持YAML文件配置,易于上手,而Jenkins虽然也支持YAML配置,但可能在配置上不如CircleCI直观。
-
Jenkins vs Travis CI:
- Travis CI是一个流行的开源平台,支持多种编程语言,配置文件为YAML格式,易于上手。
- Travis CI拥有活跃的社区支持,而Jenkins虽然也有强大的社区,但在某些方面可能不如Travis CI社区活跃。
-
Jenkins vs Bamboo (Atlassian):
- Bamboo是Atlassian提供的一款CI/CD工具,与Jira和Bitbucket等Atlassian产品紧密集成。
- Jenkins以其开源和自托管的优势被广泛使用,而Bamboo则提供了更加商业化的解决方案
3、Jenkins的安装与配置
3.1、Jenkins的系统要求
Jenkins是目前最主流的持续部署平台。整体是基于java语言实现的,所以在安装环境的时候,是需要关联到java相关环境来实现安装。Jenkins为了满足各种不同环境的安装需求,所以会有各种安装形态。推荐各位使用Tomcat+Jenkins.war的安装形态来实现。
3.2、安装Jenkins的步骤
-
安装jdk的版本。下载地址:Java Archive Downloads - Java SE 8u211 and later(安装什么版块根据Jenkins版本的要求,具体可参考Jenkins官网要求:https://mirrors.jenkins-ci.org/war/)
-
添加tomcat,控制版本在9即可。推荐使用免安装版本
-
官网下载:(https://mirrors.jenkins-ci.org/war/)jenkins.war运行程序,注意,下载后不需要解压
-
将jenkins.war放到tomcat的webapps路径下。(路径下原有的默认文件和文件夹都可以直接删掉)
-
启动
-
通过tomcat。windows系统是通过在tomcat的bin路径下有一个startup.bat文件,双击启动。linux系统是通过运行tomcat的bin路径下的startup.sh文件来启动(初次运行时间是比较长的,请耐心等待。)。启动之后,不要关闭tomcat的命令窗。否则tomcat会结束运行
-
直接运行Jenkins.war包,进入war包所在目录:cmd进入黑窗口运行命令:
java -jar jenkins.war
运行后不用关掉黑窗口,不然jenkins会退出
-
-
再打开tomcat的webapps下,会发现一个jenkins的文件夹
-
访问jenkins:http://localhost:8080/jenkins
-
初次访问jenkins需要管理员密码,在日志中查看,也可以根据提示的路径找到密码文件,一般密码就在运行