生成和发布Node.js包

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

可以在 Azure Pipelines 持续集成和持续交付(CI/CD)系统中生成、测试和部署Node.js应用。 了解如何使用管道通过节点包管理器(npm)创建 Node.js 包并发布管道项目。

示例管道自动执行生成、测试和打包 Node.js 应用程序的过程,使其准备好进行进一步的部署或分发。

先决条件

产品 要求
Azure DevOps - 一个 Azure DevOps 项目
- 能够在 Microsoft 托管的代理上运行管道。 可以购买并行作业,也可以请求免费层。
- 对 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 项目中,选择 “管道>创建管道”,然后选择 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 运行生成命令生成 Node.js 项目。
  • 运行测试:npm 测试命令运行项目的测试套件。
  • 复制文件: CopyFiles@2任务 将所需的项目文件(例如 src/** ,和 public/**)复制到项目暂存目录。
  • 发布管道项目: PublishPipelineArtifact@1任务 将项目暂存目录中的文件作为名为 nodejs-app 的管道项目发布。

运行管道

选择“ 验证并保存”,然后选择“ 保存”、“ 运行”和 “再次运行 ”。

管道运行后,验证作业是否成功运行,以及是否看到已发布的工件。

屏幕截图显示了成功的管道运行,其中包含一个工件。

恭喜,你已成功创建并运行了生成和测试Node.js包的管道。 若要扩展管道,可以:

后续步骤