hexo+appveyor 博客持续集成

很早之前就听说过持续集成这个概念,但是一直没有实际操作过,这两天在搭建hexo博客时,幸运地让我再次遇见了它.并且发觉,这次搭建博客就是一个不错的入门机会.最终,在花费了两天的时间之后,终于把脉络打通了.

操作基础:基于hexo,github pages完成博客搭建

主要参考了Google到的文章,本文主题是持续集成,所以不做搭建过程描述.

持续集成的思想

在实现建站的过程中,除了代码的编写,还有实施部署,持续集成(Continuous integration,简称CI)解决的问题在于:它让人们更专注于源码,而将源码编译,部署环境搭建等相对固定的重复性动作通过持续集成进行简化.就本博客的持续集成实现过程来说,只有首次实现持续集成时,才会涉及到环境部署这些内容的操作,而在此之后,我们需要做的,就只有好好的维护源码,对于写博客来说就只有写好博文,然后push到github.后续的操作,持续集成会自行帮你完成.

对于搭建hexo博客来说,CI帮你做的简化是这样的:

​ 当你写完了文章,准备发布到github上,于是你需要:hexo clean & hexo g & hexo d;

​ 而使用了CI之后,你仅需要:git push;

在本文中,CI是通过appveyor提供的服务来完成.叙述过程中会先进行主要过程的描述,文章结尾会对操作过程中的其他问题进行补充描述

第一步:到 appveyor 配置需要实现持续集成的项目

推荐使用github账号直接登入,操作起来会很方便.

完成登录后找到new project按钮,选择github,然后在右侧的列表中选择你的博客仓库,比如我的是:forecloud.github.io点击后面的add即可.再回到Project页就可以看到你的项目了,接着在项目名右侧找到设置按钮,进入设置页面

settings部分需要配置的有两块General,Environment

我的仓库设置了两个分支,master和source;master存放生成在public文件夹的静态文件;source存放博客源码.General中设置Default branch,Branches to build两项;都设置成源码分支source

settings部分需要配置的是四个变量:

GIT_USER_EMAIL:邮箱

GIT_USER_NAME:用户名

STATIC_SITE_REPO:生成的public文件要提交到的github地址[填写github pages仓库地址即可][比如我的是:https://github.com/forecloud/forecloud.github.io.git(点击仓库的Use HTTPS再copy地址)]

TARGET_BRANCH:默认是master

(前两个是appveyor自动部署时,将appveyor编译后的文件提交到master分支时要用到,后两个是告诉appveyor你的部署仓库的地址)

第二步:配置access_token

回到你自己的github,点击你头像右侧的下拉按钮,选择Settings,依次点击Developer settings >> Personal access tokens >> Generate new token >> 输入Token description >> Select scopes 部分只选中 repo ,创建完成后会跳转到tokens页面,复制那串字符串 >> 将复制的字符串到appvoyor加密 >> 复制加密后的tokens

第三步:设置appveyor.yml

可以直接复制我的配置:appveyor.yml 把token改成你刚刚复制的加密后的token就可以了

第四部:检验CI配置是否起作用

检出你的源码分支

进入到项目根目录,git bash执行命令:npm install hexo-cli –save,为项目安装完成hexo.

修改一个笔记文件并保存

回到git bash 依次执行{git add -A .} {git commit -am ‘test’} {git push origin 源码分支名}

再到appveyor首页,点击project,稍等一会,项目会出现console,并输出日志,如果没看到点击项目或者刷新就有了.当你看到Building success就说明构建成功了.但是为了确保万无一失,你应该查看github中master分支中的文章是不是已经变成了你修改后的,源码分支是不是修改后的,如果都是正常的,那么,恭喜你,CI的简单实战就算完成了.

操作过程中遇到的其他问题

1.git分支创建,分支切换

2.待续

参考引用:

如何更好地对hexo博客管理{提供了整体思路}

appveyor官方文档{建议英文靠谱的同学直接阅读}

使用AppVeyor持续集成本博客{参考了appveyor.yml文件的最后几行配置git commit开始}

坚持原创技术分享,您的支持将鼓励我继续创作!