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