Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines の継続的インテグレーションと継続的デリバリー (CI/CD) システムの一部として、Node.jsアプリを構築、テスト、デプロイできます。 パイプラインを使用して、Node Package Manager (npm) を使用して Node.js パッケージを作成し、パイプライン成果物を発行する方法について説明します。
このパイプライン例では、Node.js アプリケーションのビルド、テスト、パッケージ化のプロセスが自動化され、さらにデプロイまたは配布する準備が整います。
前提条件
製品 | 必要条件 |
---|---|
Azure DevOps | - Azure DevOps プロジェクト。 - Microsoft がホストするエージェントでパイプラインを実行する機能。 並列ジョブを購入することも、Free レベルを要求することもできます。 - YAML と Azure Pipelines に関する基本的な知識。 詳細については、「最初の パイプラインを作成する」を参照してください。 - 権限: - パイプラインを作成するには、 共同作成者 グループに含まれている必要があり、グループには [ ビルド パイプラインの作成 ] アクセス許可が [許可] に設定されている必要があります。 プロジェクト管理者グループのメンバーは、パイプラインを管理できます。 - サービス接続を作成するには、サービス接続の管理者ロールまたは作成者ロールが必要です。 |
GitHubの | - GitHub アカウント。 - Azure Pipelines を承認するための GitHub サービス接続 。 |
紺碧 | Azure サブスクリプション。 |
製品 | 必要条件 |
---|---|
Azure DevOps | - Azure DevOps プロジェクト。 - セルフホステッド エージェント。 作成するには、 セルフホステッド エージェントに関するページを参照してください。 - YAML と Azure Pipelines に関する基本的な知識。 詳細については、「最初の パイプラインを作成する」を参照してください。 - 権限: - パイプラインを作成するには、 共同作成者 グループに含まれている必要があり、グループには [ ビルド パイプラインの作成 ] アクセス許可が [許可] に設定されている必要があります。 プロジェクト管理者グループのメンバーは、パイプラインを管理できます。 - サービス接続を作成するには、サービス接続の管理者ロールまたは作成者ロールが必要です。 |
GitHubの | - GitHub アカウント。 - Azure Pipelines を承認するための GitHub サービス接続 。 |
紺碧 | Azure サブスクリプション。 |
サンプル コードをフォークする
サンプル Express.js サーバー アプリをフォークします。
- js-e2e-express-server リポジトリに移動します。
- ページの右上隅にある [ フォーク ] を選択します。
- GitHub アカウントを選択します。 既定では、フォークの名前は親リポジトリと同じですが、別の名前を付けることができます。
重要
次の手順では、 GitHub サービス接続 を作成するか、GitHub にリダイレクトしてサインイン、Azure Pipelines のインストール、または Azure Pipelines の承認を求められる場合があります。 画面の指示に従ってプロセスを完了します。 詳細については、「 GitHub リポジトリへのアクセス」を参照してください。
パイプラインを作成する
- Azure DevOps プロジェクトで、 Pipelines>Create Pipeline を選択し、ソース コードの場所として GitHub を選択します。
- [ リポジトリの選択 ] 画面で、フォークしたサンプル リポジトリを選択します。
- [ パイプラインの構成 ] 画面で、[ スターター パイプライン] を選択します。 Azure Pipelines は、パイプラインに azure-pipelines.yml という名前の YAML ファイルを生成します。
- [保存して実行] の横にあるドロップダウン キャレットを選択し、[保存] を選択してから、もう一度 [保存] を選択します。 このファイルは、フォークされた GitHub リポジトリに保存されます。
- 次の画面で、[ 編集] を選択します。
パッケージをビルドして成果物を発行する
azure-pipelines.yml ファイルを次のように編集します。
ファイルの内容を次のコードに置き換えます。
trigger: - main pool: vmImage: 'ubuntu-latest' variables: nodeVersion: '18.x' steps: # Install Node.js - task: UseNode@1 inputs: version: $(nodeVersion) displayName: 'Install Node.js' # Install dependencies - script: | npm install displayName: 'Install dependencies' # Build the project - script: | npm run build displayName: 'Build project' # Run tests - script: | npm test displayName: 'Run tests' # Copy project files to artifact staging directory - task: CopyFiles@2 inputs: sourceFolder: '$(Build.SourcesDirectory)' contents: | src/** public/** targetFolder: '$(Build.ArtifactStagingDirectory)' displayName: 'Copy project files' # Publish pipeline artifact - task: PublishPipelineArtifact@1 inputs: artifactName: 'nodejs-app' targetPath: '$(Build.ArtifactStagingDirectory)' displayName: 'Publish pipeline artifact'
更新されたパイプラインでは、次の操作を行います。
- Node.jsのインストール: UseNode@1 タスク は、指定した Node.js バージョン (18.x) をインストールします。
- 依存関係のインストール: npm install コマンドは、Node.js プロジェクトに必要な依存関係をインストールします。
- プロジェクトをビルドする: npm run build コマンドは、Node.js プロジェクトをビルドします。
- テストの実行: npm テスト コマンドは、プロジェクトのテスト スイートを実行します。
- ファイルのコピー: CopyFiles@2 タスク は、必要なプロジェクト ファイル (
src/**
やpublic/**
など) を成果物のステージング ディレクトリにコピーします。 - パイプライン成果物の発行: PublishPipelineArtifact@1 タスク は、成果物ステージング ディレクトリから nodejs-app という名前のパイプライン成果物としてファイルを発行します。
パイプラインを実行する
[ 検証して保存]、[ 保存]、[ 実行] 、[再実行] の順に選択します。
パイプラインの実行後、ジョブが正常に実行されたことと、公開された成果物が表示されることを確認します。
これで、Node.js パッケージをビルドしてテストするパイプラインが正常に作成され、実行されました。 パイプラインを拡張するには、次のことができます。
- Azure App Service などのサービスを使用してクラウド プラットフォームにデプロイする
- NPM パッケージとして発行する
- Azure Static Web Apps などの静的ホスティング サービスをデプロイする
- Azure Kubernetes Service またはその他のコンテナー オーケストレーション プラットフォームをコンテナー化してデプロイする