自动部署

自动部署github blog

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
56
57
58
59
60
61
# 工作流名称
name: Deploy Hexo to GitHub Pages

# 触发器:在 push 到 main 分支时触发
# workflow_dispatch 允许你从 Actions 页面手动触发此工作流
on:
push:
branches:
- main # 你的 Hexo 源文件所在的分支
workflow_dispatch:

# Job 配置
jobs:
build-and-deploy:
# 运行环境
runs-on: ubuntu-latest

# 步骤
steps:
# 步骤一:检出你的源文件仓库代码
- name: Checkout 🛎️
uses: actions/checkout@v4
with:
# “submodules: 'recursive'” 解决了 Hexo 主题通常作为子模块的问题
submodules: 'recursive'

# 步骤二:设置 Node.js 环境
- name: Set up Node.js 🟩
uses: actions/setup-node@v4
with:
node-version: '24' # 你可以指定你的项目所需的 Node.js 版本
cache: 'npm' # 缓存 npm 依赖,加快后续构建速度

# 步骤三:安装依赖项
- name: Install Dependencies 📦
run: npm install

# 步骤四:生成静态文件
- name: Generate Static Files ⚙️
run: npx hexo generate # 使用 npx 执行本地安装的 hexo-cli

# 步骤五:部署到 GitHub Pages
- name: Deploy to GitHub Pages 🚀
uses: peaceiris/actions-gh-pages@v4
with:
# 刚刚在仓库 Secrets 中创建的 Personal Access Token
personal_token: ${{ secrets.HEXO_DEPLOY_TOKEN }}
# 要部署到的目标仓库,格式为 <用户名>/<仓库名>
# 例如: 'your-username/your-username.github.io'
external_repository: springkill/springkill.github.io
# Hexo 生成的静态文件默认在 public 目录
publish_dir: ./public
# 要推送到的目标分支
publish_branch: master # 对于用户/组织页面,通常是 main 或 master
# 部署提交的作者信息
user_name: 'springkill'
user_email: 'zzz.love.study@gmail.com'
# 部署提交的消息
commit_message: "🚀 Deploy from Hexo source repo @ ${{ github.sha }}"
# 清理目标分支,只保留本次部署的文件
keep_files: false

自动部署
http://www.springkill.club/2025/07/15/自动部署/
作者
SpringKill
发布于
2025年7月15日
许可协议