このクイック スタートでは、 GatsbyJS と簡略化された Azure DevOps Starter 作成エクスペリエンスを使用して、NodeJS プログレッシブ Web アプリ (PWA) を作成します。 完了すると、Azure Pipelines の PWA の継続的インテグレーション (CI) と継続的デリバリー (CD) パイプラインが作成されます。 Azure DevOps Starter は、開発、デプロイ、監視に必要なものを設定します。
[前提条件]
- アクティブなサブスクリプションを持つ Azure アカウント。 アカウントを無料で作成します。
- Azure DevOps 組織。
Azure portal にサインインする
DevOps Starter は、Azure Pipelines に CI/CD パイプラインを作成します。 新しい Azure DevOps 組織を作成することも、既存の組織を使用することもできます。 DevOps Starter では、選択した Azure サブスクリプションに Azure リソースも作成されます。
Azure portal にサインインし、左側のウィンドウで [リソースの作成] を選択します。
検索ボックスに、「DevOps Starter 入力して選択します。 [ 追加 ] をクリックして新しい追加を作成します。
サンプル アプリケーションと Azure サービスを選択する
Node.js サンプル アプリケーションを選択します。
既定のサンプル フレームワークは Express.jsです。 選択内容を [シンプル Node.js アプリ ] に変更し、[ 次へ] を選択します。
この手順で使用できるデプロイ ターゲットは、手順 2 で選択したアプリケーション フレームワークによって決まります。 この例では、 Windows Web App が既定のデプロイ ターゲットです。 Web App for Containers は設定したままにして、[次へ] を選択します。
プロジェクト名と Azure サブスクリプションを構成する
DevOps Starter 作成ワークフローの最後の手順では、プロジェクト名を割り当て、Azure サブスクリプションを選択して、[ 完了] を選択します。
プロジェクトがビルドされ、アプリケーションが Azure にデプロイされている間、概要ページが表示されます。 しばらくすると、Git リポジトリ、かんばんボード、デプロイ パイプライン、テスト 計画、アプリに必要な成果物を含むプロジェクトが Azure DevOps 組織 に作成されます。
プロジェクトの管理
[すべてのリソース] に移動し、DevOps Starter を見つけます。 DevOps Starter を選択します。
プロジェクトホームページ、コード リポジトリ、CI/CD パイプライン、実行中のアプリへのリンクを表示するダッシュボードが表示されます。 プロジェクト ホームページを選択して Azure DevOps にアプリケーションを表示し、別のブラウザー タブでアプリケーション エンドポイントを選択してライブ サンプル アプリを表示します。 このサンプルは、後で GatsbyJS で生成された PWA を使用するように変更します。
Azure DevOps プロジェクトから、チーム メンバーを招待して共同作業を行い、かんばんボードを確立して作業の追跡を開始できます。 詳細については、こちらを参照 してください。
リポジトリを複製して Gatsby PWA をインストールする
DevOps Starter は、Azure Repos または GitHub に Git リポジトリを作成します。 この例では、Azure Repo が作成されています。 次の手順では、リポジトリを複製して変更します。
リポジトリをDevOps プロジェクトから選択し、複製をクリックします。 Git リポジトリをデスクトップに複製するためのさまざまなメカニズムがあります。 開発エクスペリエンスに適したものを選択します。
リポジトリがデスクトップに複製されたら、スターター テンプレートにいくつかの変更を加えます。 まず、ターミナルから GatsbyJS CLI をインストールします。
npm install -g gatsby
ターミナルから、リポジトリのルートに移動します。 次のような 3 つのフォルダーが含まれている必要があります。
Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2/23/2020 10:42 PM Application d----- 2/23/2020 3:05 PM ArmTemplates d----- 2/23/2020 3:05 PM Tests
Gatsby スターターに置き換えるため、アプリケーション フォルダー内のすべてのファイルは必要ありません。 次のコマンドを順番に実行して、トリミングします。
cp .\Application\Dockerfile . rmdir Application
Gatsby CLI を使用してサンプル PWA を生成します。 ターミナルから
gatsby new
を実行して PWA ウィザードを開始し、スターター テンプレートのgatsby-starter-blog
を選択します。 次のサンプルのようになります。c:\myproject> gatsby new √ What is your project called? ... my-gatsby-project ? What starter would you like to use? » - Use arrow-keys. Return to submit. gatsby-starter-default gatsby-starter-hello-world > gatsby-starter-blog (Use a different starter)
これで、
my-gatsby-project
という名前のフォルダーが作成されました。Application
に名前を変更し、Dockerfile
をコピーします。mv my-gatsby-project Application mv Dockerfile Application
お気に入りのエディターで Dockerfile を開き、最初の行を
FROM node:8
からFROM node:12
に変更します。 この変更により、コンテナーでバージョン 8.x ではなくバージョン 12.x Node.js 使用されるようになります。 GatsbyJS には、Node.jsの最新バージョンが必要です。次に、アプリケーション フォルダーで package.json ファイルを開き、 スクリプト フィールド を編集して、開発および運用サーバーが使用可能なすべてのネットワーク インターフェイス (0.0.0.0 など) とポート 80 をリッスンするようにします。 これらの設定がないと、コンテナー アプリ サービスは、コンテナー内で実行されている Node.js アプリにトラフィックをルーティングできません。
scripts
フィールドは次のようになります。 具体的には、ターゲットのdevelop
、serve
、start
を既定値から変更します。"scripts": { "build": "gatsby build", "develop": "gatsby develop -H 0.0.0.0 -p 80", "format": "prettier --write \"**/*.{js,jsx,json,md}\"", "start": "npm run serve", "serve": "npm run build && gatsby serve -H 0.0.0.0 -p 80", "clean": "gatsby clean", "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1" }
CI/CD パイプラインを編集する
前のセクションのコードをコミットする前に、ビルドパイプラインとリリース パイプラインにいくつかの変更を加えます。 'ビルド パイプライン' を編集し、バージョン 12.x Node.js 使用するように Node タスクを更新します。 [タスクのバージョン] フィールドを 1.x に設定し、[バージョン] フィールドを 12.x に設定します。
このクイック スタートでは、単体テストを作成せず、ビルド パイプラインでこれらの手順を無効にします。 テストを記述するときに、これらの手順を再度有効にすることができます。 右クリックして、[ テスト依存関係のインストール ] と [ 単体テストの実行 ] というラベルのタスクを選択し、無効にします。
リリース パイプラインを編集します。
ビルド パイプラインと同様に、Node タスクを 12.x を使用するように変更し、2 つのテスト タスクを無効にします。 リリースは次のスクリーンショットのようになります。
ブラウザーの左側で、 views/index.pug ファイルに移動します。
[ 編集] を選択し、h2 見出しを変更します。 たとえば、「 Azure DevOps Starter をすぐに使 ってみる」と入力したり、他の変更を加えたりします。
[ コミット] を選択し、変更を保存します。
ブラウザーで、DevOps Starter ダッシュボードに移動します。
ビルドが進行中であることを確認できます。 行った変更は、CI/CD パイプラインを介して自動的にビルドおよびデプロイされます。
変更をコミットし、Azure CI/CD パイプラインを調べる
前の 2 つの手順では、Gatsby によって生成された PWA を Git リポジトリに追加し、パイプラインを編集してコードをビルドしてデプロイしました。 コードをコミットし、ビルドおよびリリース パイプラインを通じて進行状況を確認できます。
ターミナルのプロジェクトの Git リポジトリのルートから、次のコマンドを実行して、コードを Azure DevOps プロジェクトにプッシュします。
git add . git commit -m "My first Gatsby PWA" git push
ビルドは、
git push
が完了するとすぐに開始されます。 Azure DevOps ダッシュボードから進行状況に従うことができます。数分後に、ビルドパイプラインとリリース パイプラインが完了し、PWA をコンテナーにデプロイする必要があります。 上記のダッシュボードから [アプリケーション エンドポイント ] リンクをクリックすると、ブログ用の Gatsby スターター プロジェクトが表示されます。
リソースをクリーンアップする
リソースが不要になった場合に作成した Azure App Service やその他の関連リソースを削除できます。 DevOps Starter ダッシュボードの 削除 機能を使用します。
次のステップ
CI/CD プロセスを構成すると、ビルド パイプラインとリリース パイプラインが自動的に作成されます。 これらのビルドパイプラインとリリース パイプラインは、チームのニーズに合わせて変更できます。 CI/CD パイプラインの詳細については、次を参照してください。