次の方法で共有


Node.js パッケージをビルドして発行する

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 サーバー アプリをフォークします。

  1. js-e2e-express-server リポジトリに移動します。
  2. ページの右上隅にある [ フォーク ] を選択します。
  3. GitHub アカウントを選択します。 既定では、フォークの名前は親リポジトリと同じですが、別の名前を付けることができます。

重要

次の手順では、 GitHub サービス接続 を作成するか、GitHub にリダイレクトしてサインイン、Azure Pipelines のインストール、または Azure Pipelines の承認を求められる場合があります。 画面の指示に従ってプロセスを完了します。 詳細については、「 GitHub リポジトリへのアクセス」を参照してください。

パイプラインを作成する

  1. Azure DevOps プロジェクトで、 Pipelines>Create Pipeline を選択し、ソース コードの場所として GitHub を選択します。
  2. [ リポジトリの選択 ] 画面で、フォークしたサンプル リポジトリを選択します。
  3. [ パイプラインの構成 ] 画面で、[ スターター パイプライン] を選択します。 Azure Pipelines は、パイプラインに azure-pipelines.yml という名前の YAML ファイルを生成します。
  4. [保存して実行] の横にあるドロップダウン キャレットを選択し、[保存] を選択してから、もう一度 [保存] を選択します。 このファイルは、フォークされた GitHub リポジトリに保存されます。
  5. 次の画面で、[ 編集] を選択します。

パッケージをビルドして成果物を発行する

azure-pipelines.yml ファイルを次のように編集します。

  1. ファイルの内容を次のコードに置き換えます。

    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 パッケージをビルドしてテストするパイプラインが正常に作成され、実行されました。 パイプラインを拡張するには、次のことができます。

次のステップ