banner
9527DHX

9527's xLog

无声无色的 X 空间 同步博客内容 | 内含限定博文 | 高可用性
github
twitter_id

Github Actions と Netlify/Vercel を使用して Hexo ブログの自動デプロイを実現する

以下コードは 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 # 出力ブランチをカスタマイズ可能
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。