377 字
2 分钟
自动部署
自动部署github blog
# 工作流名称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