部署Hexo到Gitlab,实现每次更新文章云端自动部署pages(无需手动生成和git deploy)

Google出品必属精品

当然gitlab只是Google投资而已,并不是Google出品,但是真的从Gitlab再无git云仓…
为什么不选github?太复杂,省略十万八千字……
为什么不选coding?之前虽然有广告可以去掉访问还算稳定,自从和腾讯扯一块后,ping是很快,get那个速度真的是#@¥@#¥,谁接受谁用吧……

以前如何部署hexo

  1. 开始自己构建是hexo源码及.md文档托管到gitlab,只是单纯的版本管理使用;
  2. 生成的html的代码文件git到coding,把coding当免费的静态服务器使用;

coding环境get数据.png
自从知道coding访问时那么的慢(上图截自17ce.com测试coding部署的站点get数据),都打算hexo-deployer-ftpsync,开始是知道gitlab是可以直接云端自动部署的,但是不知道怎么操作,今天看了Zander的博客在简书发布的文档搞定了。

注意是gitlab云端端自动部署hexo

现在如何部署hexo(也是本教程简化版)

  1. gitlab存储源码及.md,创建.gitlab-ci.yml文件(具体内容参考下文)
  2. 配置好域名
  3. 每次更新,一提交gitlab自动部署博客并可预览,demo: http://pinwu.pub (coding对比:http://coding.pinwu.pub)

以下内容转自:http://www.iosprogrammer.tech/deploy-hexo-to-gitlab/
gitlab官方youtube视频: https://www.youtube.com/watch?v=TWqh9MtT4Bg

部署Hexo到Gitlab

  • Hexo+GtHub:起初想要把这个博客放到Github上,但是由于Github不让百度爬取。
  • Hexo+Coding.net:后来又尝试了 coding.net,在使用coding.net的过程中遇到了一些坑。
    • 普通会员不能自定义域名 -> 申请成为白银会员(使用腾讯云授权)
    • 微信等方式登录腾讯云后,授权失败(不知原因) -> 使用腾讯云直接登录 -> 授权成功,成为白银会员,可以自定义域名
    • 首次打开会显示5s的coding.net广告,后跳转到博客,据说这样的话无法被百度收录 -> 充值199/年 成为黄金会员(我没有充)

Hexo + Gitlab

  1. 在原来的博客根目录中新建一个.gitlab-ci.yml

    1
    before_script:
    2
      - apt-get update -qq && apt-get install -y -qq pandoc
    3
    image: node:9.8.0
    4
    pages:
    5
      cache:
    6
        paths:
    7
        - node_modules/
    8
      script:
    9
      - npm install hexo-cli -g
    10
      - npm install
    11
      - hexo deploy
    12
      artifacts:
    13
        paths:
    14
        - public
    15
      only:
    16
      - master

    这里需要注意,image: node:9.8.0 node的版本 不是2.2.0,9.8.0这个版本是我当前安装的版本,其他的版本我没有试过。

  2. 在博客的根目录的配置文件_config.yml中,把deploy下推送到github的相关内容删掉。这是因为在gitlab的自动部署过程中会执行推送github的操作,为了不用配置用户名和密码相关配置,建议删除。

  3. 在gitlab中新建仓库,过程省略。

  4. 把博客内容push到上一步新建的仓库中,过程省略。

  5. 查看gitlab中项目的CI/CD -> Piplines,这时候应该处于Padding状态,等几分钟,状态变成了Success。

  1. 查看Setting -> Pages可以看到gitlab给我们分配的链接,访问链接可以看到我们的博客。

部署到gitlab成功