使用 Azure Pipelines 发布 npm 包(YAML/经典)

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

使用 Azure Pipelines,可以将 npm 包发布到组织和其他组织中的 Azure Artifacts 源。 本文将指导你使用 YAML 和经典管道将 npm 包发布到内部和外部源。

先决条件

将包发布到同一组织中的源

注意

若要使用 Azure Pipelines 将包发布到源,项目集合生成服务和项目的生成服务标识都必须配置为源发布者(参与者)。 有关更多详细信息,请参阅添加新用户/组

steps:
- task: NodeTool@0
  inputs:
    checkLatest: true

- task: npmAuthenticate@0
  displayName: 'Authenticate to Azure Artifacts feed'
  inputs:
    workingFile: .npmrc

- script: |
   npm publish
  displayName: Publish

将包发布到其他组织中的源

若要将包发布到另一个 Azure DevOps 组织中的源,必须先在目标组织中创建个人访问令牌。

导航到托管目标源的组织,并使用打包>读取和写入范围创建个人访问令牌。 复制个人访问令牌,因为需要在以下部分中使用它。

创建服务连接

  1. 登录到管道运行所在的 Azure DevOps 组织,然后导航到你的项目。

  2. 导航到项目设置>服务连接

  3. 选择“新建服务连接”,选择“npm,然后选择“下一步”。

  4. 选择 用户名和密码 作为 身份验证方法,然后输入 注册表 URL输入用户名(占位符,因为 Azure Pipelines 将使用.npmrc配置文件和之前创建的个人访问令牌进行身份验证)。 对于 密码,请粘贴个人访问令牌。 提供服务连接的名称,并选中“ 授予对所有管道 的访问权限”复选框。

  5. 完成时选择“保存”。

发布包

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择管道,然后选择您的管道定义。

  3. 选择编辑,然后将以下代码片段添加到 YAML 管道。

    - task: NodeTool@0
      inputs:
        checkLatest: true
    
    - task: npmAuthenticate@0
      displayName: 'Authenticate to Azure Artifacts feed'
      inputs:
        workingFile: .npmrc
        customEndpoint: <SERVICE_CONNECTION_NAME>
    
    - script: |
       npm publish  
      displayName: Publish