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

GitHub免费支持CI-CD了,测试部署高度自动化

时间:2023-03-14 08:09:34 科技观察

GitHub免费支持CI/CD,测试部署高度自动化GitHub兴奋地宣布终于支持CI/CD了。CI\CD,全称:持续集成(ContinuousIntegration),持续部署(ContinuousDeployment),是开发过程的自动化工具,现在可以在公共项目上免费使用。全面兼容各种操作系统、各种语言、各种云。此次重大更新发生在代码运行平台GitHubActions上。Actions的作用是将工作流自动化(转为代码),让大家直接在GitHub服务器上测试和部署代码。在内置CI/CD之后,这种一站式开发者服务再次进化。现在,已经有Beta版可以注册试用,正式版会在11月份到来。消息一出,程序员界一片哗然。推特点赞数1400+,HackerNews热度也突破500。一方面是欣喜地迎接更强大的GitHub;另一方面,微软一统天下的姿态,也让人觉得像CircleCI这样的持续集成工具可能会很冷。就像之前发布的包管理工具一样,让NPM颤栗不已。那么,支持CI/CD的Actions有多强呢?海纳百川,高度自动化据官方博客介绍,新的GitHubActions可以更加方便地自动化构建、测试、部署项目的全过程。不管您使用的是Linux、MacOS还是Windows。工作流是直接在容器上运行还是在虚拟机上运行也无关紧要。广泛支持各种语言和框架:Node.js、Python、Java、PHP、Ruby、C/C++、.NET、Android和iOS。如果您想测试具有多个容器的复杂应用程序,您现在可以同时测试您的Web服务和数据库。只需在工作流文件中添加一些docker-compose即可。然后,仔细看看功能:MatrixBuilds有了它,你可以并行测试一个项目的多个版本。只需在ActionsYAML文件中添加以下代码行:jobs:test:name:Testonnode${{matrix.node_version}}and${{matrix.os}}runs-on:${{matrix.os}}策略:矩阵:node_version:[8,10,12]os:[ubuntu-latest,windows-latest,macos-latest]steps:-uses:actions/checkout@v1-name:UseNode.js${{matrix.node_version}}uses:actions/setup-node@v1with:version:${{matrix.node_version}}-name:npminstall,buildandtestrun:npminstallnpmrunbuild--if-presentnpmtest剩下的工作可以交给GitHub。实时日志(LiveLogs)实时日志可以在构建运行时为您的构建进度提供丰富的反馈。系统会将您的日志传输到操作控制台,实时显示状态。此日志功能是为易读性而定制的,其中包含表情符号。此外,您还可以使用简单的永久链接(Permalink)来深度链接(DeepLink)到任何日志文件的任何一行。这样就很容易和小伙伴讨论一个故障或者测试结果。动作就是代码,就像写代码一样。所以它可以被编辑、重用、共享、分叉。当你分叉一个项目时,你同时分叉了它的动作和它的源代码。这是一种无缝方法,您可以使用与原始项目相同的操作来构建和测试您自己的项目。该团队表示,这是向社区学习的好方法。你有一个你喜欢的项目,重现它的每一步,然后fork它以满足你的需要。这里使用了一种简洁的新语法(Syntax)来表达工作流,基于YAML。您可以重复使用每个操作和工作流程,它很容易引用,就像一个简单的repo引用。通过这种方式,它们可以很容易地拼接成一个强大的工作流程。它可以用JavaScript编写,或创建容器操作。两种方式都可以通过GitHubAPI进行交互,也可以使用其他公共API。还有丰富的可复用生态,来自于GitHub的各个合作伙伴:比如LaunchDarkly、mabl、CodeClimate、GitKraden。甚至,您可以在CircleCI上触发构建。不止一个工作流除了构建、测试和部署应用程序之外,您还可以使用GitHubActions来自动执行其他任务:例如,问题分类和管理、自动发布新版本、与您的用户群协作等等。工作流可以在整个GitHub开发人员周期中的任何事件上触发。此外,任何GitHub应用程序都可以添加自定义事件。通过这种方式,开发者和他们的合作伙伴可以定制GitHub来满足项目的需要。从集成包和容器注册表构建包发布和容器发布是CI/CD工作流的关键部分。比如开源一个库,比如部署一个大型网络服务。GitHubActions可以更轻松地发布和使用各种包。无论是GitHub包注册表中的包还是其他注册表中的包。一旦开发人员可以访问Actions,他们还可以访问GitHubPackageRegistry以自动化整个工作流程,从构建到部署。易于使用GitHub希望你能快速使用CI/CD功能。所以,一旦你为你的项目启用Actions,GitHub会根据你的项目匹配推荐一些合适的工作流程。所有公共项目均可免费使用。如果你想在私有项目中使用CI/CD,有一个价格表:但是,测试期间一切都是免费的,快来注册:https://github.com/features/actions至于企业版,团队计划明年推出。CI/CD到底是什么看到这里,可能还有小伙伴不明白:CI/CD到底是什么?CI:ContinuousIntegration,持续集成,是指一个团队的所有开发人员每天多次将自己的代码合并到主干中,使用一致的自动化方法构建、打包和测试程序,并频繁修改代码。提高软件质量并促进团队协作。CI可以实现自动化测试,更早得到测试结果,防止有问题的代码被交付,编译更容易,降低测试成本和时间。CD有两个概念,一个是ContinuousDelivery,持续交付,在CI中构建自动化测试流程后,持续发布代码仓库,不一定部署到生产环境。持续交付对于小的更改很有用,可以加快迭代过程。另一种是持续部署,它使用自动化的构建、测试和部署周期来快速交付高质量的产品并将它们直接部署到生产环境中。用户可以感受到产品的变化,不需要做专门的发布更新。修改后几分钟就上线了。持续部署可以让发布频率更高,每次提交自动触发发布流程,降低小批量发布的风险,无需每次都等待更新,持续提升用户体验。之前对于只能由第三方实现的功能议论纷纷,现在GitHub自己做了,当然受到了很多程序员的热烈欢迎。没过多久,GitHub推特的评论区就纷纷欢呼起来:Awesome!凉爽的!惊人的!之前的那些CI工具可能日子不好过。大量CI工具面临冷遇。但是,既然GitHub已经发布了CI/CD功能,你还会使用过去那些第三方的CI工具吗?很多人已经开始挥手告别了:有的人看到多系统支持就非常high:哇,支持macOS?这足以让我从CircleCI迁移。CircleCI每月40美元,对于一些ReactNative应用CI/CD来说已经足够了,但是CD每周只能做一次。TravisCI和CircleCI等工具可能会面临用户流失的可怕局面。就像HackerNews上的这位CircleCI用户:这对我来说很有趣,它让我思考技术中垄断和多元文化主义的自然兴起。GitHub最近好像要“吃掉整个世界”。比如之前的包管理给了Artifactory和Nexus很大的震撼。现在这样做对CircleCI来说可能是个坏消息(我是CircleCI用户)。作为一个开发者,短期内我确实喜欢这样,不用把那么多东西放在一起,头疼怎么把它们放在一起,如果GitHub不行,CircleCI不行,我们就喘口气away在GitHub的头上就好了。但从长远来看,这样的竞争环境会产生问题。作为创业公司的员工,大公司大平台很难跟你竞争。即使你的产品再好,也敌不过大平台的力量,毕竟他们整合了更多的价值。微软的野心:将GitHub用户引流至Azure?也有人怀疑微软此举是在为Azure铺路,利用GitHub的用户流量,瞄准云计算市场。作为.NET开发人员,这就像吸引更多人使用AzureDevOps,然后让他们成为Azure云的用户。毕竟,这是扩大云计算市场的最后一步。我认为微软的一个好的策略是让GitHub的CI/CD代码和AzureDevOps尽可能重复。AzureDevOps不需要那么灵活,只要保持健壮性,GitHub就可以作为试验场。条条大路通蔚蓝。GitHub的用户群比Azure大得多。微软希望为其IaaS获得更多用户。GitHubActions中的CI/CD估计下一步就是让GitHub自己运行产品代码,这样购买Azure云服务就省去了很多步骤。在一个地方运行代码,关闭并重复使用单个工具组件是相当随意的,在这个市场上,在一个地方拥有整个套件是显而易见的。所以你怎么看?