Azure DevOps yaml 管道:配置 Azure Artifacts "package" 资源

Azure DevOps yaml pipeline: configure Azure Artifacts "package" resource

场景:

方法:

      displayName: "Artifacts - download"
      inputs:
        packageType: 'npm'
        feed: '38a52be4-9352-453e-af97-5c3b448652f0/38a52be4-9352-453e-af97-5c3b448652f0'
        view: '070e33c7-f5c8-4561-8186-5c3b448652f0'
        definition: '1f32cfbf-1427-4b27-8476-5c3b448652f0'
        version: '1.0.1'
        downloadPath: '$(System.ArtifactsDirectory)'

这种方法可行,但它需要在 yaml 定义中指定硬编码版本或通配符“*”(最新版本)。 理想情况下,可以在运行时通过“运行 管道”对话框指定版本。但是,这需要将包配置为资源 (Alt. 2)

根据 docs,有许多可能的资源:管道、构建、存储库、容器、包和 webhook。 在这种情况下,“packages”资源似乎是合适的。

resources:
  packages:
    - package: contoso
      type: npm
      connection: pat-contoso
      name: yourname/contoso 
      version: 7.130.88 
      trigger: true

但是,缺少文档,仅提供 GitHub 个包的示例。

我找不到任何示例,专门针对“Azure Artifacts”包。

谁可以共享一个有效的“包”配置,专门用于 Azure Artifacts?

您可以将 runtime parameters 与您的第一个选项一起使用

parameters:
- name: packageVersion
  displayName: Package version
  type: string
  default: '1.0.1'

trigger: none

jobs:
- job: Deploy
  displayName: Deploy
  steps:
  - task: DownloadPackage@1
    displayName: "Artifacts - download"
    inputs:
        packageType: 'npm'
        feed: '38a52be4-9352-453e-af97-5c3b448652f0/38a52be4-9352-453e-af97-5c3b448652f0'
        view: '070e33c7-f5c8-4561-8186-5c3b448652f0'
        definition: '1f32cfbf-1427-4b27-8476-5c3b448652f0'
        version: '${{ parameters.packageVersion }}'
        downloadPath: '$(System.ArtifactsDirectory)'

恐怕您无法将它与资源结合起来,因为它不支持 templates/variables/paramataers 的任何方式。

正如 Krzysztof 所建议的那样,Runtime parameters 应该适用于 the version could be specified at runtime via the Run Pipeline -dialog。如果你想下载包存档,你可能需要添加 extract: false

I can't find any example, specifically for an "Azure Artifacts" package.

目前 Azure Artifact Npm 包不支持,this document 已声明 Resources: packages 选项仅适用于 Nuget/Npm github 包。