首页 > AI前沿 > 正文

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言,网友:第三方凉凉 海纳百川,高度自动 CI/CD是到底是什么 议论纷纷

转载 2019-08-12 0 73

GitHub激动地宣布,终于支持CI/CD了。

CI\CD,全称:持续集成 (Continuous Integration) ,持续部署 (Continuous Deployment) ,是开发流程的自动化利器,如今可以在公有项目上免费使用了。

全面兼容各种操作系统,各种语言,以及各种云。

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

这次重大更新,发生在代码运行平台GitHub Actions身上。

Actions的角色,是把工作流自动化 (变成代码) ,让大家在GitHub服务器上直接测试代码、部署代码。

而内置了CI/CD之后,这个一条龙的开发者服务又进化了。

现在,已经有Beta版可以注册试用,正式版也会在11月到来。

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

消息一出,程序员的世界热火朝天。推特赞数1400+,Hacker News热度也超过了500。

一面,是怀着喜悦迎接一个更强大的GitHub;

一面,微软这一统天下的姿势,也让人感觉到,像CircleCI这样的持续集成工具,可能要凉。就像之前发布的包管理工具,令NPM瑟瑟发抖那样。

所以,支持了CI/CD的Actions,到底有多强?

按官方博客的说法,新的GitHub Actions能把搭建、测试、部署项目的整个流程,更加方便地自动化。

不管你用的是Linux、MacOS还是Windows。

也不管工作流是直接在容器上运行,还是在虚拟机上运行。

广泛支持各种语言框架

如果,你想测试多容器的复杂应用,现在可以把你的网络服务和数据库一起测试。只要在工作流文件里,加上一些docker-compose就行了。

然后,详细观察一下功能:

矩阵构建 (Matrix Builds)

有了它,你可以把一个项目的许多版本并行测试

只要在Actions YAML文件里,加上这几行代码:

 1jobs:
 2 test:
 3 name: Test on node ${{ matrix.node_version }} and ${{ matrix.os }}
 4 runs-on: ${{ matrix.os }}
 5 strategy:
 6 matrix:
 7 node_version: [8, 10, 12]
 8 os: [ubuntu-latest, windows-latest, macos-latest]
 9
10 steps:
11 - uses: actions/checkout@v1
12
13 - name: Use Node.js ${{ matrix.node_version }}
14 uses: actions/setup-node@v1
15 with:
16 version: ${{ matrix.node_version }}
17
18 - name: npm install, build and test
19 run: |
20 npm install
21 npm run build --if-present
22 npm test

剩下的工作,交给GitHub就可以了。

实时日志 (Live Logs)

实时日志,可以在你的builds运行过程中,为它们的进程 (Progress) 提供丰富的反馈。

系统会把你的日志传输到Actions控制台,实时显示状态。

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

这个日志功能是为了易读性而定制的,里面还有Emoji。

另外,你也可以用一个简单的永久链接 (Permalink) ,来深度链接 (Deep Link) 到任何日志文件的任意一行。

这样,就很容易和小伙伴讨论一个故障,或者测试结果了。

像写代码那样

action就是代码。所以可以编辑,可以重复使用,可以分享,可以fork。

当你fork了一个项目,就同时fork了它的action,和它的源码。

这是个无缝连接的方法,你可以用跟原始项目同样的action来搭建、测试自己的项目。

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

团队说,要向社区学习,这是一个很好的办法。你有了喜欢的项目,重现它的每一步,然后fork过来适应自己的需要。

这里用了一种整洁的新语法 (Syntax) 来表达工作流,基于YAML。

你可以重复使用每个action和工作流,引用起来很容易,就像简单的repo reference。

这样,就可以轻松把它们拼接起来,变成强大的工作流。

可以用JavaScript写出来,或者创建一个容器action,两种方法都能通过GitHub API来交互,其他公开API也可以。

还有一个丰富的生态,可以重复利用,它来自GitHub的各路合作伙伴:比如LaunchDarkly、mabl、Code Climate、GitKraden。

甚至,你还可以触发一个CircleCI上的build。

不止一种工作流

除了构建、测试、部署应用,你也可以用GitHub Actions来自动化其他任务:

比如,Issue的分类和管理,自动发布新版本,和你的用户群协作等等。

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

在GitHub整个开发者周期里、任何一个事件上面,工作流都能被触发。

并且,任何GitHub App都可以添加自定义事件。这样,开发者和它们的伙伴,就能定制GitHub来满足项目的需求了。

从集成包和容器注册表上构建

包的发布和容器的发布,是CI/CD工作流上的关键部分。

比如开源一个库,比如部署一个大型网络服务。

GitHub Actions让各种包的发布和使用,变得更容易了。

不管是GitHub Package Registry里面的包,还是其他注册表里的包。

开发者能访问Actions了,也就能访问GitHub Package Registry,来自动化整个工作流,从构建到部署。

简单上手

GitHub想让你快点用上CI/CD功能。

于是,一旦你给项目启用了Actions,GitHub就会根据你的项目,匹配一些合适的工作流推荐出来。

所有公开项目都可以免费使用。

而私有项目要用CI/CD,就有价格表了:

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

不过,现在是beta期间,一切都是免费的,快来注册:

https://github.com/features/actions

至于企业版,团队计划明年推出。

看到这里,可能还有一些朋友没有明白:

CI/CD到底是个啥?

CI:Continuous Integration,持续集成,指的是一个团队的所有开发人员每天多次把自己手里的代码合并到主干中去,用一致的自动化方法来构建、打包和测试程序,可以频繁修改代码,提升软件质量,便于团队协作。

CI可以实现自动化测试,更早拿到测试结果,防止有问题的代码被交付出去,也更容易编译,降低了测试成本和和时间。

CD则有两个概念,一个是Continuous Delivery,持续交付,在CI中构建自动化的测试流程后,持续将代码发布的存储库,不一定部署到生产环境中。

持续交付对于细微的变更十分有用,可以加速迭代过程。

另一个是Continuous Deployment,持续部署,通过自动化的构建、测试和部署循环来快速交付高质量的产品,直接部署到生产环境中,用户可以感受到产品的变化,不需要做专门的发布更新,而是修改之后几分钟就上线了。

持续部署可以使发布频率更高,每次提交自动触发发布流,降低了小批量发布的风险,用户体验也能持续提升,不用每次都等更新。

原本要靠第三方才能实现的功能,现在GitHub自己就干了,这当然引来了许多程序员的热烈欢迎,没多久,GitHub推特的评论区里欢呼声此起彼伏:Awesome! Cool! Amazing!

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言
GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言
GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

之前那些CI工具,可能日子就不好过了。

一大批CI工具面临凉凉

不过,既然GitHub自己出了CI/CD功能,那么以前那些第三方CI工具,大家还会用么?

不少人已经开始挥手拜别了:

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言
GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

也有人看到多系统支持这一点就非常high:

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

TravisCI、CircleCI这些工具,可能要面临用户流失糟糕状况了。比如Hacker News上的这位CircleCI用户:

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

微软的野心:把GitHub用户导流到Azure?

也有人怀疑,此举是微软在给Azure铺路,借GitHub的用户量导流,目标还是瞄准了云计算市场。

GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言
GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言
GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言

所以,你怎么看呢?

—  —

版权所有,未经授权不得以任何形式转载及使用,违者必究。

相关文章


  • 特斯拉辅助驾驶又出车祸,高速路撞拖车后起火
  • 43万奖金!PyTorch黑客马拉松开办,冠军免费赴美参会,不许中国地区参赛 比赛规则 43万奖金 不允许中国地区参赛
  • 网易AI变革忙:武可养猪,文能造笔
  • 五行代码玩转GPT-2,新加坡高中生开源轻量级GPT-2“客户端” 五行代码文本生成 食用指南 传送门
  • 汉堡王已开始供应“人造肉”汉堡
  • 孙正义透露:软银愿景基金2号最早下月开始投资,专注AI领域
  • Facebook申请被驳回,面部识别将面临集体隐私诉讼
  • 余承东回应鸿蒙OS十大疑云:人都是被逼出来的
  • 作者信息

    清酒竹杯

    好好学习天天向上!

    最近文章
    微信公众号网页授权详解 10
    jsapi支付什么意思 7
    scope权限什么意思啊 5