azure-devops - Azure DevOps yaml 管道,下载的工件为空
问题描述
将管道从经典转换为 YAML(所以我知道它有效)。
我构建并且我的发布工件任务如下所示:
- task: PublishPipelineArtifact@1
displayName: 'Publish Pipeline Artifact'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)/MyArtifact'
artifact: MyArtifact
构建时的结果如下所示:
然后我想将它部署到 webapp YAML:
- stage: Dev
jobs:
- job: DeployApp
displayName: Deploy Web App
pool:
name: myPrivate
demands: msbuild
steps:
- task: DownloadPipelineArtifact@2
inputs:
artifact: MyArtifact
- task: AzureRmWebAppDeployment@4
displayName: 'Deploy App'
inputs:
WebAppKind: 'Web App On Windows'
azureSubscription: 'edited out...'
WebAppName: webAppName
package: '$(System.ArtifactsDirectory)'
enableXmlTransform: true
这会在 Azure DevOps 中产生以下输出:
块的差异,但由于大小非常匹配,我很高兴。
然后我在部署时遇到错误,所以我开始查看 Kudo,可以看到在 SitePackages 中我所有的包都是 1 kb(或空的......)。我预计 61.2 MB。
我采用了我的经典部署,我有这一行:
packageForLinux:'$(System.DefaultWorkingDirectory)/_MyArtifact/MyArtifact/MyApplication.zip'
但连那条路都没有找到。packageForLinux 感觉不对,但据我了解并不重要。
那么有人可以在正确的方向上取悦我如何使用 YAML 部署 Web 应用程序(在 Windows 上)吗?
解决方案
使用的文件夹是$(Pipeline.Workspace)
,不是$(System.DefaultWorkingDirectory)
,每个任务类型的默认文件夹都不同,因此您不能总是相信它们提取到默认工作目录。
推荐阅读
- sed - 删除具有特定字符数的行
- python - 循环文件路径列表,读取 JSON 文件,使用 Pymongo 插入 MongoDB
- c - 哪个机制知道程序的入口点是 main()
- c# - C# 无法从“输出字符串”转换为“输出动态”
- caching - AMP 更新缓存导致来自源的 404 或 410 错误
- docker - 在 Windows Docker 下运行的 IBM MQ 客户端
- c# - 我在动态创建的 SQL 语句中遇到语法错误,靠近 LIKE 运算符
- javascript - 令牌不会自动更新 Angular 和 ADAL.js
- java - 从自动建议下拉列表中获取文本在 Selenium 中不起作用
- c# - C# dll System.Reflection.TargetInvocationException 错误