DartOpsHub 社区成立了
大家好,我又开始折腾了。对于创建的 Flutter Runtime 热更新的社区还没有任何有效的成果的时候。我目前已经暂停了开发,因为我确实没有空对于Analyzer的研究,毕竟研究的过程不可知。
最近一直在弄自动化打包的事情,我之前所做的基于Jenkins这个服务的空壳子。采用Dart语言写命令行工具,在命令行写一整体化的打包流程。
本来这个已经在很久之前就做好了,整体的打包和发送安装包信息,包括改动日志也已经运行了很久。
最近一直在研究Shorebird的热更新服务,所以一直想将Shorebird的命令打包添加到自动化里面。发现需要改动之前的打包脚本的逻辑,并且改动之后对于新的项目不是十分的适用了。
并且我最近在改动自动获取日志的脚本,发现了这样的维护自动化打包感觉十分的繁琐,并且不能技术积累。
如果我后续支持其他项目,或者其他人需要用,完全就没有移植性。
我在想是否可以将这个过程的一些逻辑步骤拆分为单独的插件,那么整体的自定义程度就十分的高。后续的时候就可以一点点的通过积木的方式将逻辑搭建起来。
我说的这一些目前的Jenkins就可以做到,但是至少有一部分人和我一样宁愿拿着Dart写命令行,不愿意去学习Jenkins的插件怎么写。
所以我萌发了搭建基于Dart语言的自动化社区的项目。
思考
想到这里说干就干,但是具体怎么干呢。当时只有一个大致的想法,但是没有具体的实现思路。到目前写文章的时候依然没有,只能一点点的思考怎么解决。
我最开始的思考这个自动化流程需要有一个工具管理插件,包括怎么将插件的逻辑进行串联起来。我思考是做一款桌面的应用呢?还是直接也是一个CLI的工具呢?
他们有各自的好处,CLI不用关心界面,只需要关心逻辑实现,但是对于用户十分不理想。Flutter Desktop 可能和系统交互存在一定的问题还未可知。
最终思考之下,我考虑使用Flutter Desktop来实现,也是对于桌面开发的探索吧。
技术架构
这个项目因为是今天刚准备要做的,虽然之前也有雏形的功能,所以也能画出一个技术架构的大概,但是应该这个技术架构不是最终版本,会随着实现的过程而改动。
这一款核心的桌面应用正式这个社区要打造的应用,可以通过这一款软件搜索插件,安装插件,创建和发布插件。同时基于插件中间创建流程流导出配置到Jenkins创建工程,之后DCM基于配置运行整个流程。
对于插件的接口管理可以基于Appwrite的Dart运行时方式服务来做。
对于插件话这个方案在之前的文章也有提到,并且DCM这个命令行已经发布,后续可以基于具体的需求进行调整和优化。
这个项目从目前规划来说也是一个不小的工作量,我认为很有必要,不但可以丰富自动化社区,而且对于以后自己的求职加薪也是一个闪光点。
项目
目前项目已经在Github创建,地址大家可以前往=>github.com/DartOpsHub
项目的网页主要通过 Flutter Web进行构建,地址=>dartopshub.github.io,目前还没有具体的内容。
大家有什么想法可以前往=>github.com/orgs/DartOp… 提出自己的见解