avatar

目录
GitHub Coding Pages 自动部署 Hexo

背景

在玩 Hexo 博客的时候,每次提交写文章,发文章都要在本地先写完,在编译在发布。步骤可谓是极其繁琐,要没个耐心怕早早就弃坑了。幸好 Github 有一个能实现自动化的功能—— Github Action 。于是乎就有了下文—>

实现

Github 实现

基本准备

  1. 在 Github 上创建一个仓库,仓库命名随便(你找得到就行)。因为 Github 被微软收购的原因,个人用户现在也能建立私有仓库了,所以_–>。这个仓库是用来放你 Hexo 博客源码的
  2. 在本地用 ssh-keygen 命令生成一组公私秘钥。
  3. 进入源码仓库–>Settings–>Secrets里添加生成的私钥,名称为 ACTION_DEPLOY_KEY ;添加名称为 GIT_EMAIL 内容为你的 git 邮箱 ;添加 GIT_NAME 内容为你的 git 用户名。(跟下面代码要一致)
  4. 进入博客仓库–>Settings–>Deploy keys里添加生成的公钥,名称自己随便写,我用的是(ACTION_DEPLOY_KEY )

正式开始

  1. 如图所示Github1.png
  2. 配置 Github Actions ,代码如下
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
name: 自动部署 Hexo

on:
push:
branches:
- master

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]

steps:
- name: 开始运行
uses: actions/checkout@v1

- name: 设置 Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}

- name: 设置环境
env:
ACTION_DEPLOY_KEY: ${{ secrets.ACTION_DEPLOY_KEY }}
TZ: Asia/Shanghai
run: |
# set up private key for deploy
mkdir -p ~/.ssh/
echo "$ACTION_DEPLOY_KEY" | tr -d '\r' > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
# set git infomation
git config --global user.name '${{secrets.GIT_NAME}}'
git config --global user.email '${{secrets.GIT_EMAIL}}'

- name: 安装 Hexo CI
run: |
export TZ='Asia/Shanghai'
npm install hexo-cli -g
- name: 缓存
uses: actions/cache@v1
id: cache-dependencies
with:
path: node_modules
key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}}

- name: 安装插件
if: steps.cache-dependencies.outputs.cache-hit != 'true'
run: |
npm install
- name: 部署博客
run: |
hexo clean && hexo g && hexo d

至此 Github 完成

Coding 实现

有了前面 Github 的实现,Coding 就简单了。

基本准备

  1. 按图所示,创建令牌 coding.jpg
  2. 创建完后会有一个私人密钥,只出现一次,记得保存。
  3. 令牌创建完后就可以通过 https://令牌用户名:令牌密钥@你的仓库地址 来控制你的仓库了

正式开始

  1. 进入你的 Hexo 博客根配置文件中,将 Coding 的 deploy 换成 https://令牌用户名:令牌密钥@你的仓库地址
  2. 将你的 Hexo push到 GitHub 就实现双线部署了。

Ps:代码是从别处找到的,具体忘记在哪了。。。
写于 2020-03-16

文章作者: 阿长啊
文章链接: https://www.52chang.wang/post/28678.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 长弓不是弓长
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论