Q:

Azure DevOps yaml pipeline, downloaded artifact is empty

Converting a pipeline from classic to YAML (so I know it works).
I build and my publish artifact task looks like this:
  - task: PublishPipelineArtifact@1
    displayName: 'Publish Pipeline Artifact'
    inputs:
      targetPath: '$(Build.ArtifactStagingDirectory)/MyArtifact'
      artifact: MyArtifact

The result when build looks like this:

I then want to deploy this to a 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

Which results in this output in Azure DevOps:

A difference in chunks but since size match very exactly I'm happy.
I then get error on the deployment so I started look in Kudo and can see that in SitePackages all my packages are 1 kb (or empty...). I expected 61.2 MB.

I took my working classic deployment, and there i hade this row:
packageForLinux:'$(System.DefaultWorkingDirectory)/_MyArtifact/MyArtifact/MyApplication.zip'

But that path wasn't even found. And packageForLinux felt wrong but doesn't matter as I understand it.
So can someone please me in the right direction how to deploy a web app (on windows) using YAML?

A:

The folder that's used is $(Pipeline.Workspace), not $(System.DefaultWorkingDirectory), the default folder is different for each task type, so you can't always trust they extract to the default working directory.

