Frenlee

使用hexo+gitlab+ci+github Pages 持续集成写博客

概述

使用hexo 写博客最爽的是莫过于可以用markdown来写,可以不用像wordpress一样写作时还要注意排版,可以安心的写一些东西,然而hexo也有比较烦的东西,每次需要生成静态文件,然后再发布,网上看了一些关于hexo持续集成的帖子,然后这里总结下.

这里使用的是gitlab 仓库来存储博客源码,这样的你的文章就不会被别人轻而易举的复制走了,gitlab 中自带有Continuous Integration(CI)持续集成,通过持续集成生成静态文件,使用git自动发布到github Pages上,这样以后写文章就只要完成markdown这一部分就OK了.

hexo 的安装

关于hexo的安装请移步 hexo官网

gitlab 准备

申请账号,创建私有创库

关于账号的申请请移步 gitlab官网, 国外网站,不科学上网的话有点………..慢.

gitlab账号申请

申请完毕后登陆,然后创建一个私有创库
gitlab仓库创建

github 准备

  • 创建github账号,创建同用户相同的项目,例如: 用户名为skyling,创建项目仓库名称为 skyling.github.io ,这样你访问skyling.github.io的时候就会访问到这个项目下的内容了
  • 获取到github 的 Personal Access Token,获取到生成的Personal Access Token,并复制保存下来,因为下次是不可见了的
    githubAccessToken获取
    githubAccessToken获取

在本地将hexo项目添加到gitlab仓库中

  • 在本地hexo项目文件中,将私有创库地址添加进去
  • 在hexo项目根目录下创建gitlab ci持续集成配置 .gitlab-ci.yml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    image: node:4.2.2

    pages:
    cache:
    paths:
    - node_modules/

    script:
    - npm install hexo-cli -g
    - npm install hexo-generator-feed --save
    - npm install
    - hexo g
    - cd ./public
    - git init
    - git config --global user.email "github登录用户名或者邮箱" ## git配置
    - git config --global user.name "github用户名" ## git配置
    - git config --global push.default simple
    - git add .
    - git commit -m "auto-deploy" ## 这里配置你的git提交备注
    - git push --force --quiet --set-upstream https://github access token@github.com/github用户名/github用户名.github.io.git master ## github仓库地址
    artifacts:
    paths:
    - public
    only:
    - master

这里比较重要的就是最后那个githuab 仓库的地址设置了,你可以复制你github ssh 的地址,例如: `git@github.com:skyling/skyling.github.io.git 然后把最前面的git修改成github 的Personal Access Token,然后将:修改成/,最后在地址加上https://` 将ssh地址修改为https 地址,这样才能正确的提交到github仓库

写作,提交到gitlab仓库

使用hexo 进行写作,然后使用git将***.md文件提交到gitlab 仓库,几分钟后你就可以看到它已经生产静态的html文件提交到了github上,当然这中间可能会出错,你可以进入gitlab中你的项目中,看看持续集成过程错误在哪,然后反复修改到正确吧
gitlab CI

总结

使用gitlab + hexo 持续集成到github,这样你可以不需要每次都拷贝这自己的工程到处走,无论你在哪,你都可以随时随地的去写博客,同时,你也可以直接到gitlab上去写markdown源文件,然后然后提交网页上提交到仓库里,这样也是一样可行的.