Gitlab Pages 搭建 Hexo 博客

请先安装Git和NodeJs

一、申请Gitlab账户,创建Pages的项目

  1. 可以使用GitHub账户授权登录
  2. 获取当前用户的username(可以说是你的项目仓库路径的标识,不是你的名字)
  3. 创建一个新的项目命名为username.gitlab.io(项目名小写,注意即使你的username有大写的,项目名也得小写),
    比如我的username是Seek-cloud,我的项目名就得为seek-cloud.gitlab.io

二、获取Hexo博客

  1. 安装hexo-cli命令行工具

    1
    npm i hexo-cli -g
  2. 创建一个新目录,然后再这个目录下初始化hexo(后续操作的根目录都是这个目录)

    1
    hexo i


    执行完毕后你会看到如下一些文件

  3. 启动hexo博客服务

    1
    hexo s

  4. 浏览器访问http://localhost:4000

三、上传博客至Gitlab创建的项目

  1. 在当前根目录下创建一个 .gitlab-ci.yml Gitlab命令行配置文件,输入以下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    # 使用Node 4.2.2
    image: node:4.2.2
    # 定义一个生成页面的Job
    pages:
    cache:
    # 这些目录将缓存起来,供多个Job使用
    paths:
    - node_modules/
    # 这个Job要执行的命令
    script:
    - npm i hexo-cli -g
    - npm i
    - hexo d
    artifacts:
    # 这些文件夹下的文件将对外开发
    paths:
    - public
    # 指定的这些版本才会执行
    only:
    - master
  2. 打开Git bash,生成你Gitlab账户的一个ssh key,更换为自己的用户名和邮箱

    1
    2
    3
    git config --global user.name "username"
    git config --global user.email "email"
    ssh-keygen -t rsa -C "email"

  3. 在你Gitlab个人设置里的SSH key的key里面填入你生成*.pub的所有内容,添加key
  4. 在当前根目录执行(请更换为你项目的git地址)

    1
    2
    3
    4
    5
    git init
    git remote add origin git@gitlab.com:username/username.gitlab.io.git
    git add .
    git commit -m "Initial commit"
    git push -u origin master
  5. 上传完毕后,gitlab的会自动执行gitlab-ci.yml配置的Job

  6. 执行完毕后,没有问题的话就可以访问了https://username.gitlab.io