カスタム ワークフローについて
カスタム ワークフローを使うと、GitHub Actions を使って GitHub Pages サイトを構築できます。 その場合でも、使いたいブランチをワークフロー ファイルで選択できますが、カスタム ワークフローを使うとさらに多くのことができます。 カスタム ワークフローを使い始めるには、最初に現在のリポジトリに対してそれを有効にする必要があります。 詳しくは、「AUTOTITLE」をご覧ください。
アクションを構成する
GitHub Actions を使うと、 アクションを通じて GitHub Pages を使用できます。これにより、Web サイトに関するさまざまなメタデータを収集することもできます。 詳細については、「 アクション」を参照してください。
アクションを使うには、このスニペットを目的のワークフローの の下に配置します。
- name: Configure GitHub Pages
uses: actions/configure-pages@v5
このアクションは、任意の静的サイト ジェネレーターから GitHub Pages へのデプロイをサポートするのに役立ちます。 このプロセスの繰り返しを減らすには、最も広く使われているいくつかの静的サイト ジェネレーターでワークフロー テンプレートを使用できます。 詳しくは、「AUTOTITLE」をご覧ください。
アクションを構成する
アクションを使うと、成果物をパッケージ化してアップロードできます。 GitHub Pages 成果物は、1 つの ファイルを含む圧縮された アーカイブである必要があります。 ファイルのサイズは 10 GB 未満である必要があり、シンボリック リンクやハード リンクを含めることはできません。 詳細については、「 アクション」を参照してください。
現在のワークフローでアクションを使うには、このスニペットを の下に配置します。
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v2
GitHub Pages の成果物をデプロイする
アクションは、成果物のデプロイに必要なセットアップを処理します。 適切な機能を確保するには、次の要件を満たす必要があります。
- ジョブには、少なくとも と のアクセス許可が必要です。
- パラメーターはビルドステップの~として設定する必要があります。 このパラメーターを設定しないと、独立したデプロイメントが作成されていない成果物を探し続ける動作につながる可能性があります。
- ブランチとデプロイの保護ルールを適用するためには、システムを確立する必要があります。 既定の環境は です。
- ページの URL を出力として指定するには、 フィールドを使います。
詳細については、「 アクション」を参照してください。
# ...
jobs:
deploy:
permissions:
contents: read
pages: write
id-token: write
runs-on: ubuntu-latest
needs: jekyll-build
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
steps:
- name: Deploy artifact
id: deployment
uses: actions/deploy-pages@v3
# ...
個別のビルド ジョブとデプロイ ジョブをリンクする
あなたのジョブと他のジョブを1つのワークフローファイルでリンクすることで、同じ結果を得るために2つの別々のファイルを作成する必要がなくなります。 ワークフロー ファイルの作業を始めるには、 でジョブを実行するように と ジョブを定義できます。
# ...
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
# Deployment job
deploy:
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3
# ...
場合によっては、すべてを 1 つのジョブに組み合わせることができます (特に、ビルド プロセスが必要ない場合)。 そうすれば、デプロイ ステップだけに集中できます。
# ...
jobs:
# Single deploy job no building
deploy:
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload Artifact
uses: actions/upload-pages-artifact@v2
with:
# upload entire directory
path: '.'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3
# ...
異なるランナーで、順番に、または並列に実行するように、ジョブを定義できます。 詳しくは、「AUTOTITLE」をご覧ください。