Azure DevOps yaml 管道:配置 Azure Artifacts "package" 资源
Azure DevOps yaml pipeline: configure Azure Artifacts "package" resource
场景:
- 为前端应用配置 Azure DevOps yaml 部署管道
- 前端资源作为 NPM 包发布到 Azure Artifacts
- Azure DevOps 管道将初始包提升到多个阶段
方法:
- 替代。 1:从 Azure Artifacts 提要下载 npm 包的显式“下载包”任务
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)
- 替代。 2:在 yaml 定义之上指定一个“包”资源。
根据 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 包。
场景:
- 为前端应用配置 Azure DevOps yaml 部署管道
- 前端资源作为 NPM 包发布到 Azure Artifacts
- Azure DevOps 管道将初始包提升到多个阶段
方法:
- 替代。 1:从 Azure Artifacts 提要下载 npm 包的显式“下载包”任务
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)
- 替代。 2:在 yaml 定义之上指定一个“包”资源。
根据 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 包。