!!! 时间太长,方法可能有所不同了
以我的博客(liutao-me.github.io)为例,自动部署通常有两种:
- 源码在 master 分支,部署后的在 gh-pages 分支
- 源码在仓库 A(可以是私有的),部署后在仓库 B (名称通常为 liutao-me.github.io)
第一种部署会方便一些。
第一种
- 本机生成公钥和私钥
1
|
ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f gh-pages -N ""
|
- Deploy keys 设置
仓库的 Settings -> Deploy keys -> Add deploy key,
Title 填 ACTIONS_DEPLOY_KEY
, Key 填写上方生成的 gh-pages.pub 的内容
- Secrets 设置
仓库的 Settings -> Secrets -> Add a new secret, Name 填 ACTIONS_DEPLOY_KEY
, Value 填写上方生成的 gh-pages 的内容
- 配置文件
新建文件 .github/workflows/gh-pages.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
|
name: github pages
on:
push:
branches:
- master
jobs:
build-deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
# with:
# submodules: true
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2.2.3
with:
hugo-version: '0.58.3'
- name: Build
run: hugo --minify
- name: Deploy
uses: peaceiris/actions-gh-pages@v2.5.0
env:
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
PUBLISH_BRANCH: gh-pages
PUBLISH_DIR: ./public
|
此代码来自官方网站 https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-repository-type---project
- 没了!!!
第二种
基本同第一种。需要注意的地方有两点:
第一,公钥和私钥的配置地方不一样了。
1
|
When you use ACTIONS_DEPLOY_KEY, set your private key to the repository which includes this action and set your public key to your external repository.
|
第二,配置文件要改一下,见后文。
具体步骤如下:
- 本机生成公钥和私钥
1
|
ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f gh-pages -N ""
|
- Deploy keys 设置
仓库 B (名称通常为 liutao-me.github.io) 的 Settings -> Deploy keys -> Add deploy key,
Title 填 ACTIONS_DEPLOY_KEY
, Key 填写上方生成的 gh-pages.pub 的内容
- Secrets 设置
仓库 A 的 Settings -> Secrets -> Add a new secret, Name 填 ACTIONS_DEPLOY_KEY
, Value 填写上方生成的 gh-pages 的内容
- 配置文件
新建文件 .github/workflows/gh-pages.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
|
name: github pages
on:
push:
branches:
- master
jobs:
build-deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
# with:
# submodules: true
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2.2.2
with:
hugo-version: '0.58.3'
# extended: true
- name: Build
run: hugo --minify
- name: Deploy
uses: peaceiris/actions-gh-pages@v2.5.0
env:
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
EXTERNAL_REPOSITORY: liutao-me/liutao-me.github.io
PUBLISH_BRANCH: master
PUBLISH_DIR: ./public
|
此段代码比第一种方法多了一个 EXTERNAL_REPOSITORY: liutao-me/liutao-me.github.io
,同时改了一下 PUBLISH_BRANCH: master
(根据你自己的情况而定)
参见 https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-deploy-to-external-repository
- 没了!!!
总结
两种方法只需选其一。