[ 用户投稿 ]使用 flow.ci 自动部署 Hexo

编者按:本文转载自 flow.ci 用户 @LAUERAY ,原文链接 在这里


认识 flow.ci

之前的一篇博文中曾写过使用 Travis CI 自动部署 Hexo,而这里的 flow.ci 和 Travis CI 其实也差不多的东西 --- 持续集成工具,并且且 flow.ci 被称为国内的 Travis CI,不过目前内测中,相信不久就会正式发布,祝愿它越走越远,超越 Travis CI。
关于 flow.ci 的更多介绍,大家可以去官方博客了解更多,此处引用官网主页对于 flow.ci 的介绍。

融入 Workflow 机制的持续集成,让代码在 Build, Test, Deploy 间轻盈灵动

配置步骤

目前在网上能够找到使用 flow.ci 自动部署 Hexo 的详细教程只有 Juglans' Blog 博客作者的那一篇,但是作者提供的方法中把 id_rsa 私钥文件放在博客源码中,这在 Coding.net 私有库中确实没有问题,但对于我这样同时把源码托管在 GitHub 上的人来说是很危险的(购买了GitHub私有库的小伙伴请自动回避),所以我并没有按照作者的方式配置 flow.ci ,下面是我的详细配置。

注册 flow.ci

这是必要步骤,没有 flow.ci 账号后面的操作是无法进行的,有兴趣的小伙伴可以去 flow.ci 官网申请内测以获取邀请码。

flow.ci
flow.ci

创建项目

在 flow.ci 拉取仓库源码,创建相应的项目进行自动部署,flow.ci 做的很人性化,过程都是傻瓜式操作。具体的按照下面的顺序操作即可:
创建项目 -> 选择代码源 -> 选择用户 -> 选择仓库 -> 创建工作流 -> 选择脚本模板

创建项目
创建项目

中间过程很简单,就不一一截图了。

选择模板
选择模板

设置触发器

设置自动部署触发器,因为我是把源代码放在放在分支 hexo 中,博客静态文件放在分支 master 中,所以我选设置为 push hexo 时触发。

触发器
触发器

配置工作流

配置工作流,这里我们把 测试 部分删掉,然后加上 自定义脚本

自定义脚本
自定义脚本

脚本参考代码如下

# 安装Hexo命令行工具
flow_cmd "npm install hexo-cli -g" --echo

# 执行Hexo生成
flow_cmd "hexo clean" --echo
flow_cmd "hexo g" --echo

# 执行Hexo推送,这里没有使用 hexo d,因为没有权限
flow_cmd "cd ./public" --echo
flow_cmd "git init" --echo
flow_cmd "git config user.name "your name" " --echo  #修改name
flow_cmd "git config user.email "your email" " --echo  #修改email
flow_cmd "git add ." --echo
flow_cmd "git commit -m "site update" " --echo
flow_cmd "git push --force --quiet "git@git.coding.net:your name/reponame.git" master:master" --echo # 修改repo

配置 Token

我们创建项目后,flow.ci 会自动在 Coding.net 中添加部署公钥,但是这个公钥只有只读权限,用于拉取(git clone)仓库代码,并没有推送权限。

flow.ci
flow.ci

所以现在我们把它删除,重新添加这个公钥,并勾选推送功能,这样这个公钥就拥有了推送回 Coding.net 的权限了,提高了安全性。

coding.net
coding.net

测试

配置完后可以手动创建来测试一下是否成功,如不成功可以查看构建日志来查找不成功的原因。

手动创建
手动创建

总结

本文介绍了 flow.ci 自动部署 Hexo 的过程,并且不存在私钥原文保存在代码库的安全性问题。这样一来我们就只需要写好博文,向 Coding.net 源码库 git push 剩下的工作就全交给 flow.ci 来完成,并且即便是更换电脑不必像以前还要配置 hexo 。

DONE!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容