Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between Build Artifact and Pipeline Artifact tasks?

In Azure DevOps, we have Download/Publish Build Artifact tasks and Download/Publish Pipeline Artifact tasks.

What is the difference between the build artifact tasks and the pipeline artifact tasks and when would we choose one over the other?

like image 344
Dan Friedman Avatar asked Apr 23 '19 17:04

Dan Friedman


People also ask

What is a pipeline artifact?

Artifacts are files that are produced by a step. Once you've defined them in your pipeline configuration, you can share them with a following step or export them to keep the artifacts after a step completes. For example, you might want to use reports or JAR files generated by a build step in a later deployment step.

What is a build artifact?

Build artifacts are files produced by a build. Typically, these include distribution packages, WAR files, reports, log files, and so on. When creating a build configuration, you specify the paths to the artifacts of your build on the Configuring General Settings page.

What is the difference between build Pipeline and release pipeline in Azure DevOps?

A Build Pipeline is used to generate Artifacts out of Source Code. A Release Pipeline consumes the Artifacts and conducts follow-up actions within a multi-staging system. It is best practice to establish a link between a Build Pipeline and the corresponding Release Pipeline.


1 Answers

There is an issue about it in Azure DevOps GitHub and Microsoft answered:

Hey everyone - I'm from the Azure Artifacts team and we built the Pipeline Artifacts feature that you've discovered in Azure Pipelines.

I'll address the most important comment around documentation - we've got a whole new page coming out around Artifacts in Azure Pipelines which lists out each artifact type that we support and what they are for along with links to specific documentation. We think that should answer most of your questions.

Because that is still being edited before we publish it I thought I would give you the 30,000 foot view on the difference between Pipeline Artifacts and Build Artifacts and also mention how Pipeline Artifacts relate to Universal Packages.

Build Artifacts (published via the Publish Build Artifacts task) have been in Azure DevOps for a long time and are the built-in artifact storage mechanism for Azure Pipelines. Most builds that store non-package artifacts today would likely use this task. The task can push the content up to the server/cloud but can also copy the files to a local file share.

Pipeline Artifacts (published using the Publish Pipeline Artifact task are intended as the replacement for Build Artifacts. They are in preview right now and there are a few more things we need to do to reach parity. The benefit of Pipeline Artifacts is that they can dramatically reduce the time it takes to upload and download large artifacts. We do this be first checking whether the content that is being uploaded exists in the service. We do this not just at the per-file level but also at the sub-file level (in up to 128K chunks). It can lead to really dramatic performance improvements.

Universal Packages - also in preview use the same storage/transfer technology as Pipeline Artifacts. You would use Universal Packages when you want to create an artifact with a life time independent of the pipeline that created it. You can download Pipeline Artifacts after a pipeline has completed via the artifacts UX - but if you want something that really exists independent of pipeline you would go for Universal Packages. There should be no performance difference between the two.

Hopefully this helps. Feel free to ask any more questions and I'll follow-up with answers.

like image 143
Shayki Abramczyk Avatar answered Oct 12 '22 11:10

Shayki Abramczyk