how to use hexo deploy blog by private gitlab

2018-12-27 15:52:17

环境:
gitlab访问地址: gitlab.io.com.cn
博客访问地址: tiger.pages.io.com.cn

1.开启GitLab Pages功能

1
2
3
##! Define to enable GitLab Pages
pages_external_url "pages.io.com.cn"
gitlab_pages['enable'] = true

2.安装配置GitLab Runner,可以点击这里 ,进行安装
通过 gitlab-runner register 命令进行注册,按照提示完成

3.配置nginx,这里nginx没有使用gitlab内置nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
server_name *.pages.io.com.cn;
error_log logs/pages_error.log;
access_log logs/pages_access.log main;

charset utf-8;
index index.html index.htm index.php;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;

root /usr/local/gitlab/$http_host/public;

}

4.提交blog代码

  • 登录gitlab.io.com.cn,在gitlab新建项目blog,这里为tiger.pages.io.com.cn
    注意:项目名必须为访问域名,否则无法访问
  • 本地新建hexo项目

    1
    2
    3
    4
    5
    $ cd test  #存放项目的目录
    $ hexo init blog #下载模版项目
    $ cd blog #打开模板项目目录
    $ cnpm install #下载相关依赖的包
    $ cnpm install hexo-deployer-git --save #安装扩展包
  • 如果一切正常的话,就可以发布到gitlab pages上

  • 添加ssh-key

    1
    2
    3
    git config --global user.name "tiger"
    git config --global user.email "tiger@gitlab.io.com.cn"
    ssh-keygen -t rsa -C "work@tiger.pub"
  • 添加.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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    variables:
    WebPath: "/usr/local/gitlab"

    stages:
    - install
    - build
    - deploy

    cache:
    paths:
    - node_modules/

    install_npm:
    stage: install
    script:
    - npm install
    only:
    - master

    build_public:
    stage: build
    script:
    - hexo g
    only:
    - master

    deploy:
    stage: deploy
    script:
    - hexo d
    - rsync -avz --delete public $WebPath/$CI_PROJECT_NAME
    artifacts:
    paths:
    - public
    only:
    - master
  • 修改站点配置文件&更换主题

    1
    2
    3
    4
    5
    git init
    git remote add origin git@gitlab.io.com.cn/tiger/tiger.pages.io.com.cn.git
    git add .
    git commit -m "init blog"
    git push -u origin master

完成之后可以通过http://tiger.pages.io.com.cn 来浏览页面了

ref
Use gitlab pages under the same domain as gitlab
个人站点升级持续集成,自动构建和部署
本地搭建的GitLab中开启Pages功能,不需要域名也可以