在Netlify上发布GitHub中基于Hugo的静态网站
Posted 胡争辉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Netlify上发布GitHub中基于Hugo的静态网站相关的知识,希望对你有一定的参考价值。
在Netlify
上发布GitHub
中基于Hugo
的静态网站
在`Netlify`上发布`GitHub`中基于`Hugo`的静态网站
简介
本文讲解如何在Netlify
上发布GitHub
中基于Hugo
的静态网站。
目前网站已发布在
已经同步发布在
本文将网站同步发布在
https://xuekaiyuan.netlify.app
本文发表在
https://www.xuekaiyuan.com/huzhenghui/netlify/readme/
https://xuekaiyuan.pages.dev/huzhenghui/netlify/readme/
https://xuekaiyuan.netlify.app/huzhenghui/netlify/readme/
https://blog.csdn.net/hu_zhenghui/article/details/128756035
仓库
xuekaiyuan-com/xuekaiyuan-com.github.io
仓库
仓库位于https://github.com/xuekaiyuan-com/xuekaiyuan-com.github.io/
相关版本为
详见https://www.xuekaiyuan.com/posts/xuekaiyuan/readme/
huzhenghui/posts
仓库
仓库位于https://github.com/huzhenghui/posts/
-
- 实现了自动触发更新https://www.xuekaiyuan.com/
本文将把网站同步发布在
https://xuekaiyuan.netlify.app/
相关版本为https://github.com/huzhenghui/posts/tree/v0.3
相关仓库结构
查询命令
tree -a -F -I '.git/'
本文相关文件为
./
├── .github/
│ └── workflows/
│ └── netlify.yml
└── Netlify/
└── README.md
注册Netlify
访问https://app.netlify.com/注册账号,注册后访问控制台页面https://app.netlify.com/
创建站点
在控制台页面https://app.netlify.com/选择Sites
。
单击Add new site
按钮,按照向导关联Git
仓库https://github.com/xuekaiyuan-com/xuekaiyuan-com.github.io/。
设置站点地址
创建后访问站点设置,选择Site settings
,选择Site details
,
在Site information
中单击Change site name
,设置Site name
为xuekaiyuan
,可以看到网站地址为
https://xuekaiyuan.netlify.app/
此时站点设置页面的地址也变为
https://app.netlify.com/sites/xuekaiyuan/settings/general
修改构建命令
进入Build & deploy
设置页面
https://app.netlify.com/sites/xuekaiyuan/settings/deploys
在build settings
中单击Edit settings
,在Build command
中输入
git submodule update --remote;hugo --baseURL 'https://xuekaiyuan.netlify.app'
这个命令包含两个子命令,git submodule update --remote
用于更新子模块,前面
xuekaiyuan-com/xuekaiyuan-com.github.io的 git submodule(子模块)
将https://github.com/huzhenghui/posts/添加为https://github.com/xuekaiyuan-com/xuekaiyuan-com.github.io/的子模块。
运行git submodule update --remote
命令将拉取远程的https://github.com/huzhenghui/posts/仓库。
第二个子命令为hugo --baseURL 'https://xuekaiyuan.netlify.app'
,
这是因为仓库https://github.com/xuekaiyuan-com/xuekaiyuan-com.github.io/中Hugo
配置文件
https://github.com/xuekaiyuan-com/xuekaiyuan-com.github.io/blob/master/config.toml内容为
baseURL = 'https://www.xuekaiyuan.com/'
languageCode = 'zh-cn'
title = '学开源'
已经设置baseURL
值为https://www.xuekaiyuan.com/,而Netlify
分配的域名为https://xuekaiyuan.netlify.app/,
需要通过命令行设置为该域名。
创建部署挂钩
为了让仓库https://github.com/huzhenghui/posts/更新时能自动触发更新https://xuekaiyuan.netlify.app/,
需要在https://xuekaiyuan.netlify.app/的设置中创建部署挂钩,
在Build hooks
中单击Add build hook
,创建后记录部署挂钩的URL
,前缀为
https://api.netlify.com/build_hooks/
将在设置Repository secrets
中使用该值。
设置Repository secrets
访问仓库https://github.com/huzhenghui/posts/的Repository secrets
设置页面
https://github.com/huzhenghui/posts/settings/secrets/actions
在Repository secrets
中可以看到已经有两项
TRIGGER_XUEKAIYUAN_COM
,- 这是在设置
Actions secrets
中设置的。
- 这是在设置
TRIGGER_XUEKAIYUAN_PAGES_DEV
- 这是在设置
Repository secrets
中设置的。
- 这是在设置
接下来增加一项,名称设置为TRIGGER_XUEKAIYUAN_NETLIFY_APP
,值设置为前面创建部署挂钩记录的URL
。
该设置将在.github/workflows/netlify.yml
中使用。
.github/workflows/netlify.yml
手工创建,位置在
https://github.com/huzhenghui/posts/blob/master/.github/workflows/netlify.yml
Since v0.3
https://github.com/huzhenghui/posts/blob/v0.3/.github/workflows/netlify.yml
name: Trigger https://xuekaiyuan.netlify.app Build hooks
on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Default to bash
defaults:
run:
shell: bash
jobs:
# Trigger job
trigger:
runs-on: ubuntu-latest
steps:
- name: POST https://xuekaiyuan.netlify.app Build hooks
run: |
curl \\
-X POST -d '' \\
"$ secrets.TRIGGER_XUEKAIYUAN_NETLIFY_APP "
其中on
为GitHub Action
响应的事件。
- 响应
master
分支的push
- 响应https://github.com/huzhenghui/posts/actions页面中手工触发
on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
其中defaults
设置了默认环境,这里默认使用bash
运行。
# Default to bash
defaults:
run:
shell: bash
在jobs
中为运行的任务。
jobs:
# Trigger job
trigger:
runs-on: ubuntu-latest
steps:
- name: POST https://xuekaiyuan.netlify.app Build hooks
run: |
curl \\
-X POST -d '' \\
"$ secrets.TRIGGER_XUEKAIYUAN_NETLIFY_APP "
其中只有一个任务trigger
,
任务中只有一个步骤POST https://xuekaiyuan.netlify.app Build hooks
运行的命令为
run: |
curl \\
-X POST -d '' \\
"$ secrets.TRIGGER_XUEKAIYUAN_NETLIFY_APP "
其中$ secrets.TRIGGER_XUEKAIYUAN_NETLIFY_APP
为设置Repository secrets
中设置的值。
Netlify/README.md
本文件,位置在https://github.com/huzhenghui/posts/blob/master/Netlify/README.md
Since v0.3
https://github.com/huzhenghui/posts/blob/v0.3/Netlify/README.md
以上是关于在Netlify上发布GitHub中基于Hugo的静态网站的主要内容,如果未能解决你的问题,请参考以下文章
使用Hugo和Netlify建立静态博客,并托管在Github上
在Cloudflare Pages上发布GitHub中基于Hugo的静态网站
在Cloudflare Pages上发布GitHub中基于Hugo的静态网站
在Cloudflare Pages上发布GitHub中基于Hugo的静态网站