从 0 到 1,从邀请式内测到收费上线,flow.ci 经历了十个多月的沉淀与打磨。这期间,flow.ci 工程师们奋力赶工,进行了一系列的大功能更新,Bug 修复,功能优化。

这篇文章记录了 flow.ci 内测期间的大功能更新和相关的实践教程,以及在可预见的未来 flow.ci 将迭代的新功能。

正式内测

4月初,flow.ci Beta 上线,正式进入开发者的视野。

Beta 版的 flow.ci 支持国外最主流的代码仓库构建,也有基础的插件和 trigger,支持主流的开发语言创建自动化工作流,同时提供了每种开发语言相关的基础实践教程。我们的初衷在于,flow.ci 能将工程师们从眼前重复繁琐的事情中解放出来。

使用文档上线

flow.ci 的官方文档 同时支持中文、英文两个版本。顺便说一句,官方文档也是用 flow.ci 做的持续部署与自动更新,相关教程见这里

更适应国内开发者习惯 - 代码仓库支持 Coding

经过对国内开发者的代码仓库使用习惯调研,flow.ci 迅速支持了 Coding 的代码仓库。除了现有的代码源(GitHub/GitLab/Bitbucket),在创建项目时可以选择 Coding 进行持续集成了 :)

代码质量检测插件上线

更好的代码质量检测,帮助我们检查代码中的错误,减少 codereview 花费的时间,增强代码的可维护性。

基于这个原则,我们上线了几款代码质量检测插件,涵盖每一种开发语言主流的代码质量检查的插件。添加插件方式也非常方便,搜索相关关键词,点击"添加"就会加入现有的工作流中。

支持 iOS 项目的持续集成

应大多数 iOS 开发者的需求,flow.ci 开始支持 iOS 项目的持续集成。看下这篇 iOS 快速入门帮助快速编译、测试、打包上传至 fir.im,一气呵成:)

也可以参考一下内测用户@阿米amoy 分享的 flow.ci iOS 构建经验>>flow.ci 初体验! 记一次暖心的 iOS 持续集成

flow.ci 公测

注册取消邀请码限制,用户可直接注册使用 flow.ci。我们尝试着让 flow.ci 面向更多的开发者,接受更多的声音。

支持 .yml 配置文件

除了页面配置工作流,flow.ci 目前已经支持更 Geek 的方式——.yml 配置文件设置工作流,详细的使用方法可参考文档:YML 配置文件。选择你喜欢的方式,开心就好:)

以上是目前为止 flow.ci 从内测到收费上线的重大功能更新,未来的 flow.ci 会是什么样子呢?我们规划了下面重大功能上线,看看有没有你期待的功能。

更灵活的自定义 docker 镜像

如果你不满足于 flow.ci 官方 docker 镜像,那到时候一定要试试自定义 docker 镜像!你可以在自定义 docker 镜像中安装任何运行时需要的组件、依赖包等等,更加灵活便捷。

支持插件自定义,开放插件市场

很多开发者们喜欢使用自定义插件脚本,未来 flow.ci 会统一插件的脚本标准,开发者可以将自己的插件开源提交到 flow.ci 插件市场,避免开发者们重复造轮子。

构建状态的监控功能

持续集成的原则之一就是每个人都可以了解当前项目的构建状态。flow.ci 将从「项目」和「时间两个维度监控项目的构建状态,方便跟踪到相关负责人员项目构建失败的问题。

项目构建的数据分析展示

关于项目构建的数据分析,可以根据「时间」筛选,查看项目的构建成功率、构建次数、构建时长等数据指标,更方便地了解和分析团队项目的构建状态。

支持持续部署

相比持续集成,持续部署的工作流程更受关注。使用 flow.ci 将测试完毕的代码自动部署到诸如AWS,阿里云,IBM Bluemix(插件形式)等各种云平台或自己的服务器上,从 build-test-deploy 整个工作流自动化完成,相信很多人都会期待吧:)

支持产物存储

未来 flow.ci 会将构建过程产生的日志、构建结果的安装包等相关的产物保存下来,做到产物可追溯可查找,代码和产物一一对应。

Long-Run

测试时一定要保证环境是干净/新鲜的,才能保证每次测试的结果是一样的。Long-Run 是在构建完成后 flow.ci 为可部署的版本提供可持续运行的测试环境,这样项目与项目之间,不同的代码版本之间互相隔离,互不影响。

上面的 7 大新功能将在未来 3 个月内上线,如果你也有其他需求,请来flow.ci 社区告知我们:)

未来可期,希望 flow.ci 带给你们更多惊喜!

几分钟看完 flow.ci 全部功能的更多相关文章

  1. 6 分钟看完 BGP 协议。

    上一篇文章见 万字长文爆肝路由协议! 上面我们聊 RIP .OSPF 协议都是基于 AS 即自治系统内的协议,可以把它们认为是域内路由协议:而下面我们要聊的就是 AS 之间的协议了,这也叫做域间路由协 ...

  2. 3分钟看完Java 8——史上最强Java 8新特性总结之第二篇 Stream API

    目录 · 概况 · 切片(Slicing) · 映射(Mapping) · 匹配(Matching) · 查找(Finding) · 归约(Reducing) · 排序(Sorting) · 数值流( ...

  3. 3分钟看完Java 8——史上最强Java 8新特性总结之第四篇 其他新特性

    目录 · 默认方法和静态方法 · 初步理解 · 应用模式 · 优先级问题 · Optional · CompletableFuture · 基本用法 · CompletableFuture与Strea ...

  4. DDD领域驱动设计落地实践(十分钟看完,半小时落地)

    一.引子 不知今年吹了什么风,忽然DDD领域驱动设计进入大家视野.该思想源于2003年 Eric Evans编写的"Domain-Driven Design领域驱动设计"简称DDD ...

  5. JSP 基础概念归纳 5分钟看完

    1. 符合 j2ee 标准的 web-app 的目录结构 WEB-INF classes web.xml lib servlet 开发过程 从 httpservlet 继承, 重写 doget / d ...

  6. 3分钟看完Java 8——史上最强Java 8新特性总结之第三篇 函数式编程技巧

    目录 · 改写设计模式 · 策略模式(Strategy Pattern) · 模板方法模式(Template Method Pattern) · 观察者模式(Observer Pattern) · 责 ...

  7. 3分钟看完Java 8——史上最强Java 8新特性总结之第一篇 函数式编程基础

    目录 · 行为参数化 · Lambda表达式 · 概况 · 函数式接口 · 类型推断 · 使用外层变量 · 方法引用 · 复合Lambda表达式 行为参数化 1. 理解函数式编程要先理解行为参数化. ...

  8. 1分钟看完 jQuery UI

    jQuery UI简介 jQuery UI包含了许多维持状态的小部件(Widget),因此,它与典型的 jQuery 插件使用模式略有不同.所有的 jQuery UI 小部件(Widget)使用相同的 ...

  9. CI Weekly #16 | 从另一个角度看开发效率:flow.ci 数据统计功能上线

    很开心的告诉大家,flow.ci 数据统计功能已正式上线. 进入 flow.ci 控制台,点击「数据分析」按钮,你可以按照时间日期筛选,flow.ci 将多维度地展示「组织与项目」的构建数据指标与模型 ...

随机推荐

  1. JS脚本语言(全称java script:网页里使用的脚本语言:非常强大的语言):基础语法

    一.注释语法 1.单行注释// 2.多行注释/**/ 二.语法输出 1.alert(信息):弹出信息 2.confirm(信息):弹出一个和用户交互的对话框 3.prompt(信息):弹出一个可以让用 ...

  2. BZOJ 1455: 罗马游戏 [可并堆]

    1455: 罗马游戏 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1715  Solved: 718[Submit][Status][Discuss] ...

  3. runat="server"

    加runat="server"表示该控件是服务器端控件,不加表示是客户端控件. runat="server"直接回交服务器,处理数据,又以数据加密后的hidde ...

  4. 【腾讯Bugly干货分享】iOS 中 HTTPS 证书验证浅析

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/-fLLTtip509K6pNOTkflPQ 导语 本 ...

  5. loading.io一个可以直接生成loading gif图标的站点

    官网是:http://loading.io/ 进去后,可以拖动左图大小,然后点右边的make gif就可以自动生成所选大小的gif图标了,生成后会弹出一个download窗,点download下载即可 ...

  6. Grunt-几个常用的任务配置,加载,执行的写法

    http://www.gruntjs.net/sample-gruntfile Gruntfile 实例 下面就针对一个 Gruntfile 案例做简单分析,也可以作为一个实例使用: module.e ...

  7. 读书笔记--用Python写网络爬虫02--数据抓取

    抓取(scraping)---爬虫从网页中抽取一些数据用以实现某些用途. 三种抽取网页数据的方法:正则表达式.Beautiful Soup和lxml. 2.1 分析网页 通过浏览器自带选项,查看网页源 ...

  8. HTML 相同name 传递一个数组

    今天发现一个很厉害的东西 在input表单中,name名称可以是一个,后面[],里面跟名称,和数组一样,传递到PHP中也是一个数组 <html> <body> <form ...

  9. C++第三天学习

    回顾: 类和对象 class 类名 { public: private: 在类的类部可以访问,在类的外部不能直接访问. protected: 在类的类部可以访问,在类的外部不能直接访问,其子类可以访问 ...

  10. js原生之scrollTop、offsetHeight和offsetTop等属性用法详解

    scrollTop.offsetHeight和offsetTop等属性用法详解:标题中的几个相关相关属性在网页中有这大量的应用,尤其是在运动框架中,但是由于有些属性相互之间的概念比较混杂或者浏览器兼容 ...