
Azure Artifacts refers to these loose files as “Universal Packages”: - task: 'Universal download'ĭownloadDirectory: '$(Build.SourcesDirectory)\someFolder' If your artifacts have a predictable version number and you only ever need the latest version, there are tasks for downloading these types of artifacts. Although decoupling is advantageous, when you strip something of all semantic meaning you put the onus on something else to remember, and that often leads to manual processes that breakdown… If we dumped our compiled assets into the artifactory, how would our pipeline know which version we should use? And how long should we keep these artifacts around? In my opinion, you’d want better metadata about this artifact, like source commits and build that produced it, and you’d want these artifacts to stick-around only if they’re in use. Azure Artifacts are better suited for maven, npm and nuget packages that are consumed as part of the build process.ĭon’t get me wrong, I’m not calling out a problem with Azure Artifacts that will you require you to find an alternative like JFrog’s Artifactory, my point is that it’s perhaps too generic. Azure DevOps has Azure Artifacts, which can be used for this purpose, but in my opinion it’s not a great fit. Download from Azure ArtifactsĪ common DevOps approach that is evangelized in Jez Humble’s Continuous Delivery book, is pushing binaries to an artifact repository and using those artifacts in ad-hoc manner in your pipelines.

I’ll describe them from most-generic to most-awesome. What’s the best way to bring their automated tests into our pipeline? Let’s assume that our test automation team has their own pipeline that compiles their tests and produces an artifact so that we can run these tests with different runtime parameters in different environments. In today’s scenario, we’re going to suppose that our quality engineering team is using their own dedicated repository for their automated regression tests. You can describe a complex continuous integration pipeline that produces an artifact and then describe the continuous delivery workflow to push that artifact through multiple environments in the same YAML file.

Azure DevOps multi-stage YAML pipelines are pretty darn cool.
