很高兴地宣布 flow.ci 在 Apache-2.0 协议下正式开源了。flow.ci 是国内首套开源持续集成(CI) 解决方案,帮助企业团队实现开发流程(build-test-deploy)自动化,快速持续交付高质量软件。

官方网站:https://flow.ci

开源地址:https://github.com/flowci

以此,你可以将功能完整的 flow.ci 持续集成服务部署到内网使用。在使用过程中有任何 bug 反馈或功能建议,可直接在 github 提 issues,或者通过 pull request 贡献代码。

关于 flow.ci 新特性

支持 Docker 一键部署,分分钟创建一套CI系统

flow.ci 在 Docker Hub 上提供了最新的镜像,用户可以方便地获取 Docker 镜像,快速启动 Agent.具体文档请查看 FlowCI/docker.

支持 YML 配置文件,快速创建工作流

flow.ci 支持通过配置 yml 方式创建工作流,我们提供了iOS & Android 项目的 yml 模板,用户可自行调整配置 Agent 工作环境&参数,构建环境&参数等,具体可参考文档:FlowCI/templates.

几行脚本,极速上传 fir.im

在 yml 工作流中配置以下脚本(基于Docker),可一步生成 fir.im 应用短链接,快速进行应用内测。

- name: fir_publish
script: |
array=$(find ${IOS_IPA_DIR} -name *.ipa 2>&1)
for file in ${array[@]}
do
fir publish $file
done

新设计 UI/UE,只为简单高效

在「产品功能」和「流程界面」上,flow.ci 拥有全新的 UI/UE,使用上更加简单高效。

1.一个界面,聚合常用功能,全面把控构建任务
  • 可快速搜索、创建、切换 Flow
  • 查看 Agent 构建状态
  • 查看构建历史记录
  • 查看构建详情(日志)

2.管理员控制台可轻松管理所有配置

这些配置包括,Flow 管理、Agent 管理、成员管理、证书管理、消息通知管理、插件管理等等。

全新技术栈,保证高效稳定构建

flow.ci 开源版采用了全新的技术栈,更看重「构建效率」「高可用」「扩展性」。

  • 基于 Java 语言编写,在效率、性能、稳定性、跨平台有着很好的平衡性
  • 采用 ZooKeeper 分布式服务框架 ,调度 Agent 任务更佳灵活
  • 支持 Docker 一键部署,简化部署流程
  • 使用 React.js 前端框架,性能优越

强大灵活的插件系统

flow.ci 的每个 flow 由插件和触发器构成,根据不同的语言和环境提供对应的丰富的插件,更加灵活。

  • 完全可视化的插件操作
  • 插件样式可自定义
  • 更佳适应脚本爱好者

P.S.更多的插件,正在准备中…

flow.ci Roadmap

未来 flow.ci 将上线以下功能:

  • 插件系统,支持自定义脚本/ 自定义CSS
  • Pipeline,多 Job 串并联与容器云平台集成
  • 产物存储,统一管理历史存档
  • 数据统计分析,构建成功率分析并形成报表等
  • 日志分析,精准定位构建失败的原因
  • 与 IDE 集成
  • ……



以上功能已加入 flow.ci Roadmap,如果你有其他功能需求请在 github 提 issues,或通过 pull request 的方式参与 flow.ci 迭代开发。

结语

我们希望通过 flow.ci 的开源,能够惠及更多的企业级开发者,让他们不再因为配置复杂度而对 CI 产生畏惧;同时希望聚集社区力量,做符合国情的、好用的 CI 工具。

感谢支持

新一代 CI 持续集成工具 flow.ci 正式开源的更多相关文章

  1. 持续集成工具Jenkins学习总结

    概述 持续集成(Continuous Integration,简称CI)是一种软件开发实践,团队开发人员每次都通过自动化的构建(编译.发布.自动化测试)来验证,从而尽早的发现集成错误.持续集成最大的优 ...

  2. Git Hooks、GitLab CI持续集成以及使用Jenkins实现自动化任务

    Git Hooks.GitLab CI持续集成以及使用Jenkins实现自动化任务 前言 在一个共享项目(或者说多人协同开发的项目)的开发过程中,为有效确保团队成员编码风格的统一,确保部署方式的统一, ...

  3. CI持续集成

    CI持续集成 “我的TDD实践”系列之CI持续集成 写在前面: 我的TDD实践这几篇文章主要是围绕测试驱动开发所展开的,其中涵盖了一小部分测试理论,更多的则是关注工具的使用及环境的搭建,做到简单实践先 ...

  4. Gitlab CI 持续集成的完整实践

    Gitlab CI 持续集成的完整实践 本着公司团队初创,又在空档期想搞点事情,搭建了私有Gitlab的契机,顺便把持续集成搭建起,实现了对Python服务端代码的单元测试.静态代码分析和接口测试的持 ...

  5. 我的TDD实践---CI持续集成

    “我的TDD实践”系列之CI持续集成 写在前面: 我的TDD实践这几篇文章主要是围绕测试驱动开发所展开的,其中涵盖了一小部分测试理论,更多的则是关注工具的使用及环境的搭建,做到简单实践先行,后理论专精 ...

  6. Travis CI持续集成使用

    用好这个工具不仅可以提高效率,还能使开发流程更可靠和专业化,从而提高软件的价值.而且,它对于开源项目是免费的,不花一分钱,就能帮你做掉很多事情. 一.什么是持续集成? Travis CI 提供的是持续 ...

  7. 物联网架构成长之路(47)-利用GitLab实现CI持续集成

    0.前言 前段时间,考虑到要练习部署一套CI/CD的系统.一开始考虑到Jenkins,随着这两天的了解,发现最新版的GitLab已经提供有CI/CD集成了.所以本次博客,干脆一步到位,直接用GitLa ...

  8. Jenkins的CI持续集成

    Jenkins的CI持续集成 全局配置 系统管理->全局工具配置,配置Git,JDK和Maven 1)解压maven到当前目录 tar zxf apache-maven-3.5.4-bin.ta ...

  9. CI持续集成理论知识

    (1)什么是CI What is CI? CI就是持续集成,持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过 ...

随机推荐

  1. Cosmos OpenSSD--greedy_ftl1.2.0(一)

    从主函数跳到ReqHandler,在ReqHandler内先初始化SSD--InitNandReset,然后建立映射表InitFtlMapTable void InitNandReset() { // ...

  2. js math对象总结

    1:  Math 对象用于执行数学任务. 2:Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(), Math.sin() 这样的函数只是函数 3:通过把 ...

  3. Unix/Linux僵尸进程

    1. 僵尸进程的产生: 一个进程调用exit命令结束自己生命的时候,其实它并没有真正的被销毁,而是留下一个称为“僵尸进程”的数据结构.这时它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度 ...

  4. macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏问题

    macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏会消失,估计不止出现在PhpStorm,一系列jetbrains的产品可能都会有这个问题,包括eclipis ...

  5. Python函数篇:dict函数和列表生成式

    1.dict函数语法:dict()dict(**kwarg) dict(mapping, **kwarg) dict(iterable, **kwarg) 第一种:dict()构造一个空字典 h=di ...

  6. Linux学习(十六)VIM

    一.简介 VIM是vi的增强版.VIM是Linux平台上的主要编辑器.基本上所有的文档的新增,修改,保存都需要用到它.所以,掌握VIM是很有必要的. vim的安装非常简单,一条命令就可以了: yum ...

  7. 深入理解JavaScript中的继承:原型链篇

    一.何为原型链 原型是一个对象,当我调用一个对象的方法时,如果该方法没有在对象里面,就会从对象的原型去寻找.JavaScript就是通过层层的原型,形成原型链. 二.谁拥有原型 任何对象都可以有原型, ...

  8. Problem F: 分数类的类型转换

    Description 封装一个分数类Fract,用来处理分数功能和运算,支持以下操作:   1. 构造:传入两个参数n和m,表示n/m:分数在构造时立即转化成最简分数. 2. show()函数:分数 ...

  9. 如何部署Java_web项目到云服务器上

    步骤 1:购买 Linux 实例(略) 步骤2:安装JDK 本节介绍如何安装java jdk. 软件包中包含的软件及版本如下: Tomcat:1.8.0_121 说明:这是写文档时参考的软件版本.您下 ...

  10. 《Python数据分析常用手册》一、NumPy和Pandas篇

    一.常用链接: 1.Python官网:https://www.python.org/ 2.各种库的whl离线安装包:http://www.lfd.uci.edu/~gohlke/pythonlibs/ ...