以下コードは Hexo 公式ドキュメントから修正されたものです:GitHub Pages 上に Hexo をデプロイする。このチュートリアルは、上記または他のチュートリアルと併用する必要があります。
使用する前に、リポジトリ内に .github/workflows/xxx.yml
を作成してください。名前はお好きなものにしてください。
このワークフローファイルは主に以下のプロセスを実現しています:
ユーザーがローカルで Hexo 内の記事を修正し、その変更を GitHub に同期させ、GitHub Actions をトリガーし、.github/workflows/xxx.yml
に基づいて新しい静的ファイルを生成し、そのファイルを同じリポジトリ内の gh-pages
ブランチ(カスタマイズ可能)に更新します。一方、Netlify/Vercel は事前の設定を通じて gh-pages
ブランチを引き出し、直接ウェブサイトをデプロイできます。
他の方法と比べて、この方法は構築プロセスを GitHub Actions に移動しました。
最後のステップで使用される peaceiris/actions-gh-pages
というワークフロープリセットには、さらに多くの使い方があります。詳細は以下を参照してください:GitHub Pages action - GitHub Marketplace
name: Build and Deploy # ワークフローの名前をカスタマイズ可能
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
submodules: recursive
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Cache NPM dependencies
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.OS }}-npm-cache
restore-keys: |
${{ runner.OS }}-npm-cache
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public # Hexo 出力ディレクトリをカスタマイズ可能
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public # Hexo 出力ディレクトリをカスタマイズ可能
publish_branch: gh-pages # 出力ブランチをカスタマイズ可能