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 服务器应用创建分支。
- 转到 js-e2e-express-server 存储库。
- 在页面右上角选择分叉。
- 选择你的 GitHub 帐户。 默认情况下,分支的名称与父存储库相同,但你可以为它指定不同的名称。
重要
在以下过程中,系统可能会提示你创建 GitHub 服务连接 或重定向到 GitHub 以登录、安装 Azure Pipelines 或授权 Azure Pipelines。 按照屏幕上的说明完成该过程。 有关详细信息,请参阅访问 GitHub 存储库。
创建管道
- 在 Azure DevOps 项目中,选择 “管道>创建管道”,然后选择 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 运行生成命令生成 Node.js 项目。
- 运行测试:npm 测试命令运行项目的测试套件。
- 复制文件: CopyFiles@2任务 将所需的项目文件(例如
src/**
,和public/**
)复制到项目暂存目录。 - 发布管道项目: PublishPipelineArtifact@1任务 将项目暂存目录中的文件作为名为 nodejs-app 的管道项目发布。
运行管道
选择“ 验证并保存”,然后选择“ 保存”、“ 运行”和 “再次运行 ”。
管道运行后,验证作业是否成功运行,以及是否看到已发布的工件。
恭喜,你已成功创建并运行了生成和测试Node.js包的管道。 若要扩展管道,可以:
- 使用 Azure 应用服务等服务部署到云平台
- 发布为 NPM 包
- 部署静态托管服务,例如 Azure 静态 Web 应用
- 容器化和部署 Azure Kubernetes 服务 或其他容器业务流程平台