# Web サイトを自動的にデプロイする

GitHub ActionsとGitHub Pagesを使用してコードのデプロイを自動化し、メイン ブランチにプッシュするたびにライブ サイトに更新プログラムを発行します。

機能がマージされるので、今すぐ共有できます。 このチュートリアルでは、 `main` にプッシュするたびにソフトウェア プロジェクトをライブ Web サイトに発行するように、自動展開を設定します。

> \[!NOTE]
> GitHub Pages サイトの URL は、使用するGitHubのバージョンによって異なります。
> \*
> GitHub.com上で、サイトは `YOUR-USERNAME.github.io/REPOSITORY` で公開されます。
> \*
> GitHubのデータ所在地でGHE.comを使用する場合、サイトは`pages.SUBDOMAIN.ghe.com/YOUR-USERNAME/REPOSITORY`に発行されます。ここで、`SUBDOMAIN`は企業のサブドメインです。
> \*
> GitHub Enterprise Serverでは、サイトは `pages.HOSTNAME/YOUR-USERNAME/REPOSITORY` で発行されます。ここで、`HOSTNAME`はGitHub Enterprise Server インスタンスのホスト名です。

## 前提条件

* あなたがマージした機能を含む `stargazers-log` リポジトリ。 まだマージしていない場合は、「 [提案された変更の確認](/ja/enterprise-server@3.19/get-started/start-your-journey/reviewing-your-proposed-changes)」を参照してください。

## GitHub Pages の有効化

サイトをホストするように GitHub Pages を設定し、 GitHub Actions を使用してサイトをビルドして発行します。

1. GitHubで、`stargazers-log` リポジトリに移動します。
2. リポジトリ名の下の **\[設定]** をクリックします。
3. サイドバーの \[コードと自動化] セクションで、\[ **ページ**] をクリックします。
4. \[ビルドとデプロイ] の \[ **ソース** ] ドロップダウンで、 **GitHub Actions** を選択します。

他の設定は既定値のままにします。 次に、サイトを自動的にビルドして展開する **独自のワークフロー** を作成します。

## デプロイ ワークフローの作成

ワークフローは、GitHub Actions が代わりに実行する一連の自動化されたステップです。
`main`にプッシュするたびにサイトをビルドしてデプロイするものを追加します。

1. リポジトリで、`.github/workflows/deploy.yml` という名前のファイルを作成します。
   1. ファイルの一覧の上にある`stargazers-log` リポジトリのメイン ページで、\[**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>**] をクリックし、\[**新しいファイルの作成] <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>** クリックします。
   2. ファイル名フィールドに、`.github/workflows/deploy.yml` と入力します。

2. 次のワークフロー コンテンツを追加します。

   ```yaml copy
   name: Deploy to GitHub Pages

   on:
     push:
       branches:
         - main

   permissions:
     contents: read
     pages: write
     id-token: write

   jobs:
     deploy:
       runs-on: ubuntu-latest
       environment:
         name: github-pages
         url: ${{ steps.deployment.outputs.page_url }}
       steps:
         - name: Checkout
           uses: actions/checkout@v6
         - name: Setup Pages
           uses: actions/configure-pages@v5
         - name: Upload artifact
           uses: actions/upload-pages-artifact@v2
           with:
             path: '.'
         - name: Deploy to GitHub Pages
           id: deployment
           uses: actions/deploy-pages@v2
   ```

3. ファイルを `main` ブランチに直接コミットします。

## ワークフローについて

ワークフローの各部分には、次の操作を行うジョブがあります。

* \*\*`on`\*\*は、GitHub Actionsへのプッシュごとにワークフローを実行するように`main`に指示します。
* **`permissions`** を使用して、 GitHub Pagesに発行する必要があるアクセス権をワークフローに付与します。
* **`environment`** は、ジョブを GitHub Pages サイトに接続し、発行された URL を `${{ steps.deployment.outputs.page_url }}`として公開します。
* **`steps`** コードをチェックアウトし、 GitHub Pagesを準備し、成果物としてファイルをアップロードして、ライブ サイトにデプロイします。

## ライブ サイトを表示する

ワークフローをコミットすると、 GitHub Actions 自動的に実行されます。

1. リポジトリで、\[ **アクション]** タブをクリックしてワークフローの実行を監視します。
2. 最新のワークフロー実行をクリックすると、ジョブの詳細の概要が表示されます。
3. 実行が完了したら、発行済みサイトを `https://pages.HOSTNAME/YOUR-USERNAME/stargazers-log/`で開きます。
   `YOUR-USERNAME`をユーザー名に置き換え、`HOSTNAME`をGitHub Enterprise Serverホスト名に置き換えます。
   * たとえば、あなたの GitHub アカウントのユーザー名が `octocat`、あなたのサイトは `https://pages.HOSTNAME/octocat/stargazers-log/` になります。

今後は、 `main` にプッシュするたびに、最新の変更でサイトが再デプロイされます。

## 作成した内容

このシリーズでは、完全なソフトウェア プロジェクトを構築し、 GitHub ワークフローを実践しました。

| 段階                          | 学習した内容                     |
| --------------------------- | -------------------------- |
| ソフトウェア プロジェクトの作成            | リポジトリ、README ファイル          |
| 作業の計画                       | 問題、プロジェクト (プロジェクト ボード)     |
| ローカル接続                      |                            |
| GitHub Desktop, クローニング      |                            |
| コードの記述と格納                   | ブランチ、コミット、プルリクエスト、 Copilot |
| 変更の確認                       | プル リクエストのレビュー, Copilot     |
| 自動的にデプロイする                  |                            |
| GitHub Actions、GitHub Pages |                            |

## 次のステップ

* Git と GitHubについて理解を深めください。 詳細については、「[Git とGitHub学習リソース](/ja/enterprise-server@3.19/get-started/start-your-journey/git-and-github-learning-resources)」を参照してください。
* コパイロットチャットを調べて、より速く学習し、コードを作成するときにヘルプを取得します。 詳細については、[](/ja/enterprise-cloud@latest/copilot/concepts/chat)ドキュメントの GitHub Enterprise Cloudを参照してください。
* AI をさらに深く理解し、アイデアを小さな実用的なステップに変え、例を生成し、反復的な作業を処理することで、エージェントが実用的なコーディング パートナーのように動作する方法を学習します。 詳細については、[](/ja/enterprise-cloud@latest/copilot/concepts/agents)ドキュメントの GitHub Enterprise Cloudを参照してください。
* GitHub Actions ワークフローを使用してソフトウェア プロジェクトを自動化する方法について説明します。 詳細については、「[GitHub Actionsについて](/ja/enterprise-server@3.19/actions/get-started/understand-github-actions)」を参照してください。
* カスタム ドメインを追加するか、 GitHub Pagesを使用して Web サイトを公開するその他の方法を確認します。 詳細については、「[GitHub Pages 入門](/ja/enterprise-server@3.19/pages/getting-started-with-github-pages)」を参照してください。