hexo+next+GitHub搭建静态博客(二)-部署到github

上一篇文章我们说了怎么在我们的电脑上安装和使用Hexo,这次我想介绍下怎么将hexo部署到github上,这篇文章中我将介绍两种方法。

介绍这两种方法之前,我们先将准备工作做一下。

github准备工作

注册账号

如果你已经有了github账号,这一步可以忽略,注册的细节我就不多说了。

配置

新建Repository

T146hvB4WQ1RCvBVdK.jpg

创建yourname.github.io,打勾表示名称可用

T146hvB4WQ1RCvBVdK4.jpg

第一种方法

生成网站

$ hexo generate

此时会将/source的.md文件生成到/public中,形成网站的静态文件。

本地服务器

$ hexo server

输入http://localhost:4000 即可查看网站。

可修改:

$ hexo server -p 3000

此时,输入http://localhost:3000 查看网站。

部署网站

第一步需要在_config.yml中配置你所要部署的站点:

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repository: https://github.com/mamadown/mamadown.github.io.git
  branch: master
  

部署命令

$ hexo deploy

部署网站之前需要生成静态文件,也可以用$ hexo generate -d直接生成并部署。

到此为止完成网站的雏形。输入yourname.github.io可访问博客主页。例如:http://atecher.github.io/

部署的时候有可能会出错,别急,加这一步操作就ok了。

 $ npm install hexo-deployer-git --save

PS:这种方式,如果需要多台电脑之间操作blog,会很麻烦。个人建议使用第二种方式。

第二种方法

第一种方法,我们需要每次写完文章后自己进行编译静态文件并部署到github上。那么能不能借助免费的开源持续集成构建项目来完成自动编译部署呢?

能,那就是Travis CI。

什么是Travis CI

Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,Go的很明显的特别在于采用yaml格式,同时他是在在线的服务,不像jenkins需要你本地打架服务器,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。对于做开源项目或者github的使用者,如果你的项目还没有加入Travis CI构建队列,那么我真的想对你说out了。

github代码位置

使用Travis CI需要在github上创建两个分支,一个是默认的master,还有一个是blog-source分支。

master:博客的静态文件,也就是hexo生成后的HTML文件,因为要使用Github Pages服务,所以他规定的网页文件必须是在master分支。

20170717153834.png

blog-source:是博客的源代码,我们需要将hexo的代码上传到这个分支。

20170717153923.png

我们只需要将你的blog clone到本地,在blog-source分支写blog,写完之后it push到github,然后Travis自动构建,构建完成后自动推送到Github上的master分支下。

启用要构建的项目

首先如果你要使用Travis CI,你必须要GIthub账号(好像Travis CI只支持构建github的项目)和一个项目。

使用Github账号登录Travis CI官网,如下图:

20170717154918.png

登录完后会进入如下界面

20170717155128.png

当然如果你以前没用使用过,所以你登录完是没有上图红框内的内容的,这里是因为我在写这篇博客前已经使用了,所以会有这些内容。

接下来我们点击My Repositories旁边的+,意思是添加一个要自动构建的仓库,点击后就会来到如下界面:

20170717155615.png

可以看到这个界面会显示当前github账号的所以项目,如果没有显示,点击右上角的“Sync account”按钮,就可以同步过来了。

下一步肯定是要开启你需要构建的仓库,大家可以看到红框圈起来的部分,就是我开启了我的博客。

开启后我们还需要进行一些配置,操作如下:

20170717160144.png

点击红框的那个菜单按钮,就会出现这样的下拉菜单,我们选择设置,来到这个界面,我们按照如下勾选:

20170717160236.png

Build only if .travis.yml is present:是只有在.travis.yml文件中配置的分支改变了才构建;
Build branch updates:当推送完这个分支后开始构建;

到这一步, 我们已经开启了要构建的仓库,但是还有个问题就是,构建完后,我们怎么将生成的文件推送到github上呢,如果不能推送那我们就不需要倒腾一番来使用Travis CI服务了,我们要的结果就是,我们只要想github一push,他就自动构建并push静态文件到github pages呢,那么下面要解决的就是Travis CI怎么访问github了。

在Travis CI配置Github的Access Token

标题已经说得很明白了吧,我们需要在Travis上配置Access Token,这样我们就可以在他构建完后自动push到github pages了。

在github上生成Access Token

首先我们来到github的设置界面,点击到Personal access tokens页面,点击右上角的Generate new token按钮会重新生成一个,点击后他会叫你输入密码,然后来到如下界面,给他去一个名字,下面是勾选一些权限。

20170717153924.png

生成完后,你需要拷贝下来,只有这时候他才显示,下载进来为了安全他就不会显示了,如果忘了只能重新生成一个了,拷贝完以后我们需要到Travis CI网站配置下

在Travis CI配置

配置界面还是在项目的setting里面,如下图:

20170717160929.png

至于为什么我们要在这里配置,我想大家肯定应该明白了,写在程序里不安全,配置到这里相当于一个环境变量,我们在构建的时候就可以引用他。
到这里我已经配置了要构建的仓库和要访问的Token,但是问题来了,他知道怎么构建,怎么生成静态文件吗,怎么push的github pages,又push到那个仓库吗,所以这里我们还需要在源代码的仓库里创建一个.travis.yml配置文件,放到源代码的根目录,如下图:

20170717161315.png

文件内容:

language: node_js
node_js: stable

# S: Build Lifecycle
install:
  - npm install


#before_script:
 # - npm install -g gulp

script:
  - hexo g

after_script:
  - cd ./public
  - git init
  - git config user.name "your nickname"
  - git config user.email "your email"
  - git add .
  - git commit -m "Update docs"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master
# E: Build LifeCycle

branches:
  only:
    - blog-source
env:
 global:
   - GH_REF: github.com/atecher/atecher.github.io.git

记得配置一下你的昵称、邮箱和你的git地址(GH_REF)。

到这一步,我们可以写一篇文章,添加到你的博客的_posts目录下,然后commit并push到你的Github上。

如果不出意外,我们可以就可以在Travis CI网站看到他已经在构建了,如下图:

20170717162125.png

构建完成后,我们去blog上就能看到这篇文章了。

欢迎访问我的博客:http://atecher.com/,有更多精彩文章!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,688评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,559评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,749评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,581评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,741评论 3 271
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,684评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,122评论 2 292
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,847评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,441评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,939评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,333评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,783评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,275评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,830评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,444评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,553评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,618评论 2 249

推荐阅读更多精彩内容