首页 > 解决方案 > 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 上)吗?

标签: azure-devopsazure-pipelines

解决方案


使用的文件夹是$(Pipeline.Workspace),不是$(System.DefaultWorkingDirectory),每个任务类型的默认文件夹都不同,因此您不能总是相信它们提取到默认工作目录。


推荐阅读