AstroサイトをGitHub Pagesにデプロイする
GitHub Pagesを使って、GitHub.com上のリポジトリから直接Astroウェブサイトをホストすることができます。
デプロイ方法
セクションタイトル: デプロイ方法GitHub Actionsを使うことで、AstroサイトをGitHub Pagesに自動的にビルドしてデプロイすることができます。これを行うには、ソースコードがGitHubでホストされている必要があります。
Astroは公式のwithastro/action
を保守しており、ほとんど設定することなくプロジェクトをデプロイすることができます。以下の手順に従って、AstroサイトをGitHubページにデプロイしてください。さらに詳しい情報が必要な場合は、パッケージのREADMEを参照してください。
GitHub Pages用Astroの設定
セクションタイトル: GitHub Pages用Astroの設定github.io
のURLにデプロイする
セクションタイトル: github.ioのURLにデプロイするastro.config.mjs
にsite
とbase
オプションを設定します。
import { defineConfig } from 'astro/config'
export default defineConfig({ site: 'https://astronaut.github.io', base: 'my-repo',})
site
セクションタイトル: sitesite
の値は以下のいずれかでなければなりません。
- あなたのユーザー名に基づいた次のようなURL:
https://<username>.github.io
- GitHub Organizationのプライベートページ 向けに自動生成されたランダムなURL:
https://<random-string>.pages.github.io/
base
セクションタイトル: baseAstroがあなたのリポジトリ名(例:/my-repo
)をウェブサイトのルートとして扱うようにbase
の値が必要な場合があります。
以下の場合はbase
パラメータを設定しないでください。
- ページがルートフォルダから配信されている場合。
- リポジトリが
https://github.com/<USERNAME>/<USERNAME>.github.io
にある場合。
base
には、/my-blog
のように、スラッシュで始まるリポジトリ名を指定します。これは、Astroがあなたのウェブサイトのルートがデフォルトの/
ではなく、/my-repo
であることを理解できるようにするためです。
この値が設定されている場合、すべての内部ページリンクの先頭にbase
の値を付与する必要があります。
<a href="/my-repo/about">About</a>
詳細はこちら:base
値の設定方法
カスタムドメインでGitHub pagesを使う
セクションタイトル: カスタムドメインでGitHub pagesを使う以下の./public/CNAME
ファイルをプロジェクトに追加することで、カスタムドメインを設定できます。
sub.mydomain.com
こうすることで、user.github.io
の代わりにあなたのカスタムドメインにサイトがデプロイされます。あなたのドメインプロバイダの設定も忘れずに行ってください。
カスタムドメインでGitHub pagesを使用するようにAstroを設定するには、site
の値にドメインを設定します。base
には値を設定しないでください。
import { defineConfig } from 'astro/config'
export default defineConfig({ site: 'https://example.com',})
GitHub Actionの設定
セクションタイトル: GitHub Actionの設定-
プロジェクトの
.github/workflows/deploy.yml
に新しいファイルを作成し、以下のYAMLを貼り付けます。deploy.yml name: Deploy to GitHub Pageson:# `main`ブランチにプッシュするたびにワークフローを実行します。# 異なるブランチ名を使用する場合は、`main`をブランチ名に置き換えてください。push:branches: [ main ]# このワークフローをGitHubのActionsタブから手動で実行できるようにします。workflow_dispatch:# このジョブがリポジトリをクローンし、ページデプロイメントを作成することを許可します。permissions:contents: readpages: writeid-token: writejobs:build:runs-on: ubuntu-lateststeps:- name: Checkout your repository using gituses: actions/checkout@v4- name: Install, build, and upload your siteuses: withastro/action@v3# with:# path: . # リポジトリ内のAstroプロジェクトのルートロケーション。(オプション)# node-version: 20 # サイト構築に使用するNodeのバージョン。デフォルトは20です。(オプション)# package-manager: pnpm@latest # 依存関係のインストールとサイトのビルドに使用するNodeパッケージマネージャ。ロックファイルに基づいて自動的に検出されます。(オプション)deploy:needs: buildruns-on: ubuntu-latestenvironment:name: github-pagesurl: ${{ steps.deployment.outputs.page_url }}steps:- name: Deploy to GitHub Pagesid: deploymentuses: actions/deploy-pages@v4astroアクションはいくつかのオプション入力を受け取ります。これらの入力は
with:
行と使いたい入力のコメントアウトを外すことで指定できます。公式のAstro actionはロックファイルをスキャンして、お好みのパッケージマネージャ (
npm
、yarn
、pnpm
、bun
) を検出します。パッケージマネージャが自動的に生成したpackage-lock.json
、yarn.lock
、pnpm-lock.yaml
、bun.lockb
ファイルをリポジトリにコミットしてください。 -
GitHubで、リポジトリのSettingsタブに行き、設定のPagesセクションを見つけてください。
-
サイトのSourceとしてGitHub Actionsを選択します。
-
新しいワークフローファイルをコミットし、GitHubにプッシュします。
これでサイトが公開されたはずです!Astroプロジェクトのリポジトリに変更をプッシュすると、GitHub Actionが自動的にデプロイしてくれます。