Files
blog/.github/workflows/deploy-blog.yml

65 lines
2.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Deploy Hugo Blog
on:
schedule:
- cron: '0 6 * * *' # 每天早上 6 点UTC执行一次
push:
branches:
- main # 当 main 分支有新提交时执行
jobs:
build:
# 使用默认环境,并在最新的 Ubuntu 系统上运行
environment: default
runs-on: ubuntu-latest
steps:
# 1. 克隆当前博客仓库代码(包含完整历史记录)
- name: 克隆当前博客仓库
uses: actions/checkout@v3
with:
fetch-depth: 0
# 2. 安装 Hugo 静态站点生成器extended 版本支持 Sass/SCSS 等扩展功能)
- name: 安装 Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: '0.145.0'
extended: true
# 3. 克隆私有 wiki 仓库,作为博客内容的来源
- name: 克隆私有 wiki 仓库
run: |
# 遇到错误立即退出,并确保管道中任一命令失败时退出
set -eo pipefail
# 清除旧的 wiki 临时目录,避免残留影响
rm -rf /tmp/wiki
# 使用 secrets 中存储的认证信息从私有仓库克隆 wiki 到 /tmp/wiki
git clone https://${{ secrets.GITEA_REPO_READ }}@git.7wate.org/zhouzhongping/wiki.git /tmp/wiki
# 4. 将 wiki 中的博客内容拷贝到 Hugo 的 content/posts 目录中
- name: 拷贝 wiki 内容到 content/posts
run: |
set -eo pipefail
WIKI_BLOG_DIR="/tmp/wiki/Personal/Blog"
TARGET_DIR="content/posts"
if [ -d "$WIKI_BLOG_DIR" ]; then
cp -r "$WIKI_BLOG_DIR"/* "$TARGET_DIR"/ || { echo "拷贝失败"; exit 1; }
else
echo "目录 $WIKI_BLOG_DIR 不存在,拷贝失败"
exit 1
fi
# 5. 使用 Hugo 构建静态站点,并启用资源压缩优化
- name: 构建 Hugo 静态站点
run: |
set -eo pipefail
hugo --minify
# 6. 使用 gh-pages Action 将生成的静态站点部署到指定分支(此处为 html 分支)
- name: 部署站点到 gh-pages 分支
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: html
publish_dir: ./public