azure-devops - Azure DevOps yaml 管道:配置 Azure Artifacts“包”资源
问题描述
设想:
- 为前端应用配置 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 定义之上指定一个“包”资源。
根据文档,有许多可能的资源:管道、构建、存储库、容器、包和 webhook。在这种情况下,“包”资源似乎很合适。
resources:
packages:
- package: contoso
type: npm
connection: pat-contoso
name: yourname/contoso
version: 7.130.88
trigger: true
但是,缺少文档,仅提供了 GitHub 包的一个示例。
我找不到任何示例,特别是“Azure Artifacts”包。
谁可以共享一个有效的“包”配置,专门用于 Azure Artifacts?
解决方案
您可以将运行时参数与您的第一个选项一起使用
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)'
而且恐怕您将无法将其与资源结合使用,因为它不支持任何方式的模板/变量/参数。
推荐阅读
- angular - Angular 后数据键和值结构
- android - kotlin.Unit 无法在 Android Kotlin 中强制转换为“Class” Dagger 2
- javascript - 返回时引导多步表单被破坏
- python - FFT 窗口可消除浮动到短路转换引起的噪声
- javascript - 如何在给定数据的情况下制定时间表
- amazon-web-services - DynamoDB 内部架构如何?
- node.js - 向后端 API 响应代理请求以发起 Passport、Google OAuth2 请求
- python - How to change the fields displayed if an instance is passed to a form?
- c++ - 程序按预期工作,直到我向其添加析构函数
- powershell - 使用 powershell 格式化电话号码