前言
现状:我的网站原先是在GitHub上进行源码托管,使用Netlify进行自动化部署。
改变:
1. 使用GitHub进行托管源码
2. 使用GitHub Pages来进行代码展示
3. 使用https加密服务
总而言之,就是由Netlify自动化迁向GitHub全家桶实现。
思路:
创建2个GitHub仓库,一个私有仓库用来存储源码,一个用来GitHub Pages展示静态页。
使用GitHub自带的GitHub Actions 来实现自动化部署。
过程
创建仓库
创建私有仓库为
ruicky_blog
存放hexo相关的源码创建公共仓库为
ruicky.github.io
用来展示GitHub Pages
配置 GitHub Actions
本地生成秘钥
1
$ ssh-keygen -t rsa -C "your_email@example.com"
在GitHub 的个人配置页
Setting
—>SSH and GPG keys
添加刚刚生成的公钥,名称随意。在
ruicky_blog
的Settings
—>Secrets
里添加刚刚生成的私钥,名称为ACTION_DEPLOY_KEY
。在
ruicky_blog
的仓库的Actions
选型卡中新建workflow
,填写以下配置。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
38name: Deploy Blog
on: [push] # 当有新push时运行
jobs:
build: # 一项叫做build的任务
runs-on: ubuntu-latest # 在最新版的Ubuntu系统下运行
steps:
- name: Checkout # 将仓库内master分支的内容下载到工作目录
uses: actions/checkout@v1 # 脚本来自 https://github.com/actions/checkout
- name: Use Node.js 10.x # 配置Node环境
uses: actions/setup-node@v1 # 配置脚本来自 https://github.com/actions/setup-node
with:
node-version: "10.x"
- name: Setup Hexo env
env:
ACTION_DEPLOY_KEY: ${{ secrets.ACTION_DEPLOY_KEY }}
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 'ruicky' # 换成你自己的邮箱和名字
git config --global user.email 'ruicky@ruicky.me'
# install dependencies
npm i -g hexo-cli # 安装hexo
npm i
- name: Deploy
run: |
# publish
hexo generate && hexo deploy # 执行部署程序
- 配置 站点
_config.yml
中的deploy
1
2
3
4deploy:
- type: git
repo:
github: git@github.com:ruicky/ruicky.github.io.git
配置域名,启用https
在 ruicky.github.io
仓库中 找到 Settings
,配置该节点下的 GitHub Pages
。将其中的 Custom domain
修改为自己的域名,如: ruicky.me
, 并勾选 Enforce HTTPS
即可。
写在最后
注意其中的两个仓库 ruicky
跟 ruicky.github.io
是我自己的仓库,如果要操作的话,需要改为你自己的。
该文章面向有点基础的同学,非小白教程,如果有什么不明白的,可在下方留言。