norbitrial
norbitrial

Reputation: 15166

File pattern for Publish Pipeline Artifact in Azure DevOps

Recently just built an Azure Pipeline where in one stage there are different zip files in the artifact staging directory. What I'm trying to achieve is publish to the drop folder all the zip files from the staging folder with PublishPipelineArtifact task.

I have 2 archived zip files in artifact staging directory:

  1. $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
  2. $(Build.ArtifactStagingDirectory)/cli_scripts_$(Build.BuildId).zip

In my azure-pipelines.yml file please find the publish task:

- task: PublishPipelineArtifact@0
  displayName: 'Publish pipeline artifacts'
  inputs:
    targetPath: $(Build.ArtifactStagingDirectory)/**

This gives the following error:

[error] Path does not exist: d:\a\1\a**

I have already tried with the following as well but none of them working:

$(Build.ArtifactStagingDirectory)/**
$(Build.ArtifactStagingDirectory)/**/*.zip
$(Build.ArtifactStagingDirectory)/*.zip

Question:

What is the pattern for targetPath to move all the zip files from that folder?

Any help is appreciated!

Upvotes: 8

Views: 11926

Answers (2)

Michael Yanni
Michael Yanni

Reputation: 1576

You can use the .artifactignore file to filter what the PublishPipelineArtifact task can see. Make sure the file is in the folder that you're publishing, as mentioned here: enter image description here

Upvotes: 1

norbitrial
norbitrial

Reputation: 15166

What finally resolved the issue is including a pattern with archiveFilePatterns in the task and not combining with the targetPath as I originally tried.

The solution which worked well is the following:

- task: PublishPipelineArtifact@0
  displayName: 'Publish pipeline artifacts'
  inputs:
    targetPath: $(Build.ArtifactStagingDirectory)/
    archiveFilePatterns: '**/*.zip'

The official documentation does not really states this but it was giving the idea using the pattern attribute: Publish and download artifacts

enter image description here

I hope that helps someone in the future.

Upvotes: 6

Related Questions