Azure DevOps Yaml管道,下载的工件为空

时间:2019-06-28 10:40:00

标签: azure-devops azure-pipelines

将管道从经典管道转换为YAML(所以我知道它是可行的)。

我构建了,我的发布工件任务看起来像这样:

  - task: PublishPipelineArtifact@1
    displayName: 'Publish Pipeline Artifact'
    inputs:
      targetPath: '$(Build.ArtifactStagingDirectory)/MyArtifact'
      artifact: MyArtifact

构建时的结果如下:

enter image description here

然后我要将其部署到Web应用程序 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中产生以下输出结果:

enter image description here

的不同,但是由于尺寸完全匹配,我很高兴。

然后我在部署时遇到错误,因此我开始查看Kudo,可以看到在SitePackages中,我所有的软件包均为1 kb(或为空...)。我预期为61.2 MB。

enter image description here

我进行了经典的工作部署,并且在该行有

packageForLinux:'$(System.DefaultWorkingDirectory)/_MyArtifact/MyArtifact/MyApplication.zip'

但是没有找到那条路。而且packageForLinux感觉错了,但据我了解并不重要。

那么有人可以朝正确的方向取悦我如何使用YAML部署Web应用程序(在Windows上)吗?

1 个答案:

答案 0 :(得分:2)

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