当前位置: 首页 > 科技观察

如何使用TravisCI构建CI-CD管道_0

时间:2023-03-16 15:22:42 科技观察

译者|崔浩评论|LiangCesShujuanSunOpening如果交付是软件开发的最终目标,那么CI/CD流水线就是到达那里的一系列步骤。持续集成/持续交付(CI/CD)是一组软件交付最佳实践,专注于使用DevOps或站点可靠性工程(SRE)方法改进软件交付。就CI/CD而言,持续集成(CI:ContinuousIntegration)是开发过程中的最佳实践之一,它可以在不等待大版本提交的情况下,将代码持续集成到代码库中。CI需要保证它不会破坏现有代码,同时不会对代码存储库产生重大影响。为此,为了展示CI和测试的工作原理,本文将利用最常见的CI服务:TravisCI管道。TravisCI管道将以多种方式帮助用户,包括报告自动构建更改、测试集成和应用程序部署管理。它还有助于代码库提高软件质量、降低风险并增强协作。本文将带您了解TravisCI及其优势,并讲解如何使用在线SeleniumGrid在TravisCI流水线中配置自动化测试库。TravisCI简介TravisCI是一种基于云的CI服务,可用于构建和测试托管在GitHub上的软件项目。它可用于触发构建过程、对其进行验证并报告失败原因。它接受执行命令并从位于项目根文件夹中的基于YAML文件格式的.travis.yml文件开始构建过程。TravisCI可以通过TravisYML文件了解用于构建应用程序的编程语言、分支规范、安装依赖项等。一般来说,代码仓库都有相应的持续集成工具。比如Bitbucket是Atlassian的代码库,Bamboo是Bitbucket对应的持续集成工具。GitLab代码库和GitLabCI持续集成工具也是固定组合。这说明持续集成工具的选择会随着代码库的不同而有所不同。对于TravisCI,需要满足以下两个条件才能使用,以下是一些入门的先决条件:一个授权将GitHub代码库与TravisCI集成的GitHub帐户。为什么选择特拉维斯CI?TravisCI与GitHub无缝集成并且易于设置。用户需要在GitHub上注册并授权同步GitHub项目,本文配置部分会详细介绍。大量的TravisCI文档可用于入门,包括:安装依赖项、不同编程语言的配置项以及有关加密和集成主题的内容。支持几乎所有的编程语言和云解决方案的部署。与跨浏览器测试解决方案(例如用于并行测试的LambdaTest)无缝集成。跨平台支持,支持Windows、Mac、Linux等平台。基础设施依赖性因使用的环境而异,在文档中有详细说明。对开源项目免费,其中开源项目是GitHub上的公开项目。对于私有代码库,有一个企业版可用。只要代码库用户需求配置发生变化,就会触发自动构建。用户可以选择项目根目录下Travis.yml文件指定的分支名称。TravisCI的小缺陷由于集成仅限于GitHub、GitLab、Bitbucket和Assembla,GitHub之外的云存储库使用TravisCI不如使用GitHub那样用户友好。私有代码仓库只有TravisCI的企业版(付费)支持,但试用版有100次免费构建的机会。使用TravisCI构建CI/CD管道任何公共代码库都可用于创建免费管道,配置TravisCI管道的步骤如下:第一步:使用有效的用户名和密码登录您的GitHub帐户。选择您计划与TravisCI管道集成的存储库,确保存储库是最新的。第2步:登录TravisCI,使用上面使用的GitHub帐户注册。第三步:参考下图,按要求提供授权。第4步:完成注册和授权过程后,您将被重定向到仪表板,系统将提示您输入屏幕左侧的同步帐户选项。通常,GitHub项目将与TravisCI管道同步。第5步:在LegacyServiceIntegrations下,您可以看到在TravisCI管道上同步的所有存储库。默认情况下,所有存储库都关闭CI流程,并且可以通过切换按钮为特定项目打开集成。第六步:将.travis.yml文件添加到当前自动化测试套件的根目录下。TravisYML是放置在项目根目录下的配置文件,定义了构建应用的配置信息。如果.travis.yml文件不在存储库中或者不是有效的YAML文件,它将被TravisCI管道忽略。Travis.yml文件包含了编程语言、操作系统、目标代码库的分支名称等信息。创建.travis.yml文件并将其推送到GitHub存储库后,它将触发应用程序的TravisCI构建。如下图所示,根据配置文件信息成功完成集成操作后,TravisCI流水线将完成GitHub代码的编译。具体执行过程分为两步:TravisCI会先从代码库中拉取代码,然后编译指定的分支代码。ActiveRepositoryView:构建后的JobView:JobLog示例:使用配置信息查看配置:第7步:复制(fork)GitHub存储库并将GitHub存储库与TravisCI管道同步。如果您不想分叉上述存储库,请确保选择一个存储库并确保它在您的GitHub帐户中不为空。第8步:启用同步存储库。启用后,同步的存储库将在MymyRepositories页面上可见。第9步:将.travis.yml文件添加到代码库以使用以下构建配置进行编译。language:javasudo:falsescript:"mvntest"确保您的框架能够通过配置文件中指定的maven命令触发测试-"mvntest"。第十步:将上述配置文件提交并推送到GitHub的master分支后。在作业日志视图中可以观察到自动触发的测试信息。此过程触发第一次编译,这是通过将代码从GitHub帐户拉入TravisCI管道而创建的VM。如果通过RemoteWebDriver类将测试配置在LambdaTest平台上,此时一旦有新的提交,就会触发LambdaTest平台上的测试套件。TravisCI管道集成LambdaTest自动化测试LambdaTest是一个基于云的跨浏览器测试解决方案,能够对2000多种浏览器和操作系统执行自动化测试。根据测试需求配置可自由扩展的测试资源,避免开发人员考虑资源分配和回收问题。它还可以帮助估计并行测试和跨浏览器测试所需的资源。测试本地或私人托管的项目全球企业将私人服务器用于IT项目以提高Web应用程序的安全性。LambdaTest将借助名为LambdaTestTunnel的安全外壳功能与此类平台(私有服务器项目)无缝集成。这允许您测试本地托管的页面。让我们看看如何配置LambdaTest隧道。第1步:登录LambdaTest平台后,导航至自动化仪表板,如下图所示。第2步:单击配置隧道功能后,系统将提示您覆盖两个部分,即内部服务器配置和本地托管网页测试功能。第3步:复制与被测应用程序所需功能相关联的访问令牌。以下代币仅供参考。LT-userlambdatest@samplemail.com-keyqYlLn1IzVrC2U41zM4kyjv35EvpHxR2tyMB4aEBlkNMmvpnQ5A接下来我们将使用此标记来演示使用LambdaTest进行的并行测试。使用LambdaTestSeleniumGrid进行并行测试接下来,您将了解如何在自动化测试管道(例如TravisCI管道)中使用在线SeleniumGrid工具执行并行测试。CucumberTestNG代码库将在此处用作参考。您需要克隆代码,然后将代码导入到相应的IDE中。同时需要在.yml文件中配置LambdaTest用户名和密码,如下:env:global:-LT_USERNAME=${LAMBDATEST_USERNAME}LambdaTest用户名全局变量为LT_USERNAME,LambdaTest密码为LT_ACCESS_KEY.同样可以从配置文件部分检索。.travis.yml配置信息如下:language:javasudo:falsescript:"mvntest"env:global:-LT_USERNAME=${LAMBDATEST_USERNAME}-LT_ACCESS_KEY=${LAMBDATEST_KEY}配置的信息可以通过触发远程web来使用driver,如下图所示,这里是Cucumber+TestNG代码示例。借助TravisCI自动化测试流水线,将TestNGRunner文件替换为上述代码,即可完成LambdaTest的集成,这将帮助您获得在LambdaTest平台执行测试的触发器,如下图所示:结论本文讨论了持续集成的重要性、如何使用TravisCI管道及其优缺点。TravisCI可以与云解决方案(用于自动化测试管道的LambdaTest)集成,以进行并行的跨浏览器测试。同时,TravisCI还可以配合Cucumber和TestNG,通过配置相关信息,完成对LambdaTest的跨浏览器测试。请务必注意,如果需要启动部署,首先会执行QA以验证构建。但是,您不能完全依赖手动测试来确保每个构建都是集成的。依靠手动方法不仅烦人,而且增加了失败的可能性。为了避免这种情况,有必要引入自动化测试套件。借助TravisCIpipeline,持续部署过程作为持续集成中的checkpoint,让我们轻松完成构建、编译、发布、自动测试等一系列操作。原标题:HowtoBuildYourFirstCI/CDPipelineWithTravisCI,作者:BharadwajPendyala