ローカルでブログサイトを構築した後、次のステップはブログの内容をネット上に配信することです。そうすれば、他の人も見ることができます。

現在のホスティングサイトを調査したところ、以下の選択肢があります:

これらのプラットフォームはそれぞれの特徴を持っています。次の記事でそれぞれのデプロイ方法を一つずつ紹介します。本記事では、ブログサイトをGitHub Pagesにデプロイする方法を紹介します。

GitHub Pagesとは

GitHub Pagesは、GitHubが提供する無料の静的ウェブサイトホスティングサービスで、ブログやプロジェクトのホームページ、ドキュメントなどのホスティングに適しています。あなたは単一のGitHubリポジトリを持っているだけで、ウェブサイトを https://yourname.github.io またはカスタムドメイン上に公開することができます。

##ブログサイトをGitHub Pagesにデプロイする方法

全体的な考え方

プロジェクト構造

2つのGitHubリポジトリがあると仮定します:

プロジェクト構造は以下の通りです:

PLAINTEXT
my-hugo-site/
├── content/            # ブログコンテンツ
├── layouts/            # Hugoのカスタムレイアウト
├── themes/             # Hugoのテーマ
├── config.toml        # Hugoの設定ファイル
└── .github/workflows/deploy.yml  # 自動デプロイの設定

yourusername.github.io/
├── (公開された静的サイトファイル)   # 静的ファイルはHugoがビルドした後に生成されます
クリックして展開し、詳細を表示

ステップ1:2つのリポジトリを作成する

  1. GitHubで2つのリポジトリを作成します:
  1. yourusername.github.ioリポジトリで、GitHub Pagesのソースブランチをmain(またはmaster)に設定します。

ステップ2:GitHub Actionsを使った自動デプロイの設定

my-hugo-siteリポジトリで、.github/workflows/deploy.ymlファイルを作成し、自動ビルドと静的ファイルのyourusername.github.ioリポジトリへのプッシュを設定します。

YAML
name: GitHub Pages

on:
  push:
    branches:
      - main  # ブログのルートディレクトリのデフォルトブランチ、ここではmain、または時にはmaster
  pull_request:

jobs:
  deploy:
    runs-on: ubuntu-24.04
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
          fetch-depth: 0

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: '0.147.0'  # 使用しているhugoバージョンを記入。hugo versionで確認できます
          extended: true          # 使用しているのが非拡張バージョンのhugoであれば、trueをfalseに変更

      - name: Build
        run: git submodule update --init --recursive && hugo --minify

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        if: ${{ github.ref == 'refs/heads/main' }}  # mainまたはmasterを正しく記入してください
        with:
          personal_token: ${{ secrets.MY_PAT}} # secretが他の名前に設定されている場合は、MY_PATを変更してください
          external_repository: lxb1226/lxb1226.github.io # リモートリポジトリを記入、必ずこの形式である必要はなく、自分の状況に合わせて変更
          publish_dir: ./public
          #cname: www.example.com        # あなたのカスタムドメインを記入します。カスタムドメインを使用していない場合は、この行をコメントアウトしてください
クリックして展開し、詳細を表示

私のdepoly.yamlを参考にできます。

GitHub secretsの取得

上記のyamlファイルでpersonal_tokenを取得する必要があります。my-hugo-siteリポジトリで取得できます。

リポジトリ -> Settings -> Secrets and variables -> Actionsから取得できます。

personal_token

ステップ3:GitHub Pagesの設定

  1. yourusername.github.ioリポジトリで、Settings → Pagesに入ります。
  2. Sourceをmainブランチに設定し、GitHub Pagesの設定が正しいことを確認します。
  3. 保存すると、静的ウェブサイトは https://yourusername.github.io/ でホスティングされます。

ブログの自動公開プロセス

  1. my-hugo-siteリポジトリで記事を書いたり、サイトを修正したりします。
  2. mainブランチに更新をプッシュするたびに、GitHub Actionsは自動的にビルドし、静的ファイルをyourusername.github.ioリポジトリにプッシュします。
  3. GitHub Pagesは自動的に更新され、 https://yourusername.github.io/ に表示されます。(一般的にしばらく時間がかかります)

参考

  1. https://docs.github.com/en/actions
  2. https://gohugo.io/documentation/
  3. https://lxb1226.github.io/
  4. https://github.com/lxb1226/heyjude-blog

著作権表示

著者: heyjude

リンク: https://heyjude.blog/ja/posts/how-to-depoly-blog-to-github/

ライセンス: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

コメント

検索を開始

キーワードを入力して記事を検索

↑↓
ESC
⌘K ショートカット