0%

hexo 博客搭建之github部署

本篇文章将介绍如何将博客部署到 Github 上。

  • 如何利用 GitHub Pages 部署博客。
  • 利用 Travis CI 生成博客静态文件,使博客源 markdown 文件和生成的静态文件在同一仓库管理。
  • 绑定自定义域名。

拥有 Github 账号

Github 上部署博客之前需要先注册用户账号,这里就不赘述如何注册了。

创建博客仓库

要想使用 Github Pages 服务,对博客仓库的命名是有要求的:账号名 + github.io

示例:我的博客仓库名称:codezm.github.io

上传博客代码

在上传代码之前,需要安装 Git 工具,用于操作、管理博客 Github 仓库代码。

1. 安装完 Git 后,在本机博客站点目录下使用如下命令创建本地 Git 仓库:
1
$ git init
2. 配置完成仓库地址:
1
$ git set-url add origin https://github.com/codezm/codezm.github.io.git

注: https://github.com/codezm/codezm.github.io.git 需更换成对应您 GitHub 的仓库地址。

3. 配置 .gitignore 文件:
1
2
3
4
node_modules/
public/
themes/
db.json

Tips:通过配置 .gitignore 文件,我们可以忽略哪些文件/目录不加入到 Git 仓库版本控制中。比如:关系到个人的账号密码等私密文件,log、node_modules 等不重要文件,即减少了仓库体积也减轻了维护成本。

4. 将博客代码提交到 Github
1
2
3
$ git add .
$ git commit -m 'first init'
$ git push origin master

注:第一使用 Git 工具的同学,需要先设置 Git 账户及密码(同:GitHub 账号密码)。

利用 Travis CI 生成博客静态文件

1. 使用 Github 账号授权并登陆 Travis CI,进入 账号仓库 ,开启对应仓库:codezm.github.io 「 示例 」。
2. Github Personal access tokens 创建一个新 token,并复制该 token。
3. 前往 Travis CI 项目配置:https://www.travis-ci.org/github/codezm/codezm.github.io/settings「 示例 」,在 Environment Variables 中创建 name: GITHUB_TOKENvalue粘贴在第二步复制的Token,点击 Add 按钮。

注:请保持 DISPLAY VALUE IN BUILD LOG 项未开启,以防 Token 泄露。

4. 在本地博客站点下,创建 .travis.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
sudo: false
language: node_js
node_js:
- 12 # 使用12的LTS版本
cache: npm
branches:
only:
- master # 只监听master分支的push
before_install:
- npm install -g hexo-cli
- git clone https://github.com/theme-next/hexo-theme-next themes/next
install:
- npm install --production
script:
- hexo clean
- hexo generate # 自动化构建的脚本
- echo "blogs.codezm.com" > public/CNAME # 配置自定义域名,没有可删除此行代码。
deploy:
provider: pages
skip-cleanup: true
github-token: $GITHUB_TOKEN
keep-history: true
on:
branch: master
local-dir: public
target_branch: gh-pages
5. 将 .travis.yml 提交到 Github 仓库。
1
2
3
$ git add .travis.yml
$ git commit -m 'add .travis.yml'
$ git push origin master

Git 提交成功后将触发 Travis CI 执行构建命令,自动生成博客静态文件。默认可以使用 codezm.github.io 「 示例 」域名访问博客了。

绑定自定义域名

GitHub Pages 提供了可绑定自定义域名的服务,前往Github 项目配置 页面:https://github.com/codezm/codezm.github.io/settings 「 示例 」。

第一步:仓库绑定自定义域名

Source 项目中指定 GitHub Pages 分支及根路径,在 Custom domain 项目设置自定义域名。我们还可以免费使用 GitHub Pages 提供的 HTTPS 服务,仅需开启 Enforce HTTPS

image-20200928073951449

第二步:域名服务商配置域名

Github 端设置完成后,还需要前往域名服务商,增加一条 CNAME 记录。

image-20200928073622766

第三步:等待及测试域名解析结果

10分钟后,可通过此命令测试域名解析结果:

1
$ dig blogs.codezm.com +nostats +nocomments +nocmd

image-20200928074111247