那天写随笔,好不容易写完,结果点发布时候session过期了,直接重定向到登陆,好家伙,这才体会到自动保存草稿的重要性。
因为我一般不直接在博客中写,因为很多文章都涉及到图片,我的服务器带宽小,加载图片太费时,所以经常在掘金写完,吧markdown复制过来,所以没有增加草稿功能,这也就是为啥大家经常看到的图片水印中有掘金社区几个字。
但是自己的随笔还是在我的博客中写,前几天才发现这个问题,所以抽时间增加了定期保存草稿功能。
github: github.com/houxinlin/O…
第二个准备开源的东西是一个自动部署工具,因为在个人的项目中,发布一个应用,通常最老的办法是手动上传,或者是宝塔之类的工具。
但是问题在于,上传速度,还有如果发布后发现一个小错误,就得重新上传,很费时间,所以我基于Github的WebHook功能,做了一个自动部署工具。
功能如下:
- 拉去Github项目,根据设置的命令、脚本编译/部署
- 单独执行Gradle的Task,因为可以检测出Gradle中所有的Task,包括自己写的。
- Github发出push推送时候自动执行命令/脚本。
- WebSocket推送所有日志。
其中对Gradle的项目支持最好。
因为要拉去Github项目的私有仓库时候,需要认证,系统是通过SSH,就需要先生成密钥,当然也不能让你手动去生成,这些系统都已经集成。
我们部署应用一般分类两步,第一步是根据你项目的构建工具进行打包,然后执行特定脚本,这个脚本具体任务由你决定。所以在这里提供了这两个定义方式。
比如系统在拉取VUE项目后,首先通过npm run build打包,接着要把他dist下的内容复制到nginx下,所以这部分要定义在脚本中。
之后就是系统调用执行了,整体系统比较简单,但是会提升以往的发布速度。
整体的运行流程如下:
- 本地执行git push
- github向我们的系统发送push消息
- 系统收到后重新pull项目
- 执行打包命令
- 执行脚本任务
- WebSocket通知用户。
但是这个应用这两个还在测试,基本可以使用了,在周六会在github开源。
但你也可以使用jenkins,但我喜欢造轮子。
本文转载自: 掘金