Search code examples
azure-devopstfsazure-pipelinestfsbuild

Where is the location of Release Artifacts on TFS/Azure DevOps


Can anybody tell me where the Release Artifact comes from when you use it in a Release Definition?

I’m currently using TFS on-prem (v15 Update 1) to handle undertake Build & Release. I believe this version is very close to what the current Azure DevOps documentation describes as ‘Classic’.

I have a Build Definition that outputs an Artifact to the default local path on the agent (c:\agent_work\1\a) using the Build.ArtifactStagingDirectory. I also publish/copy the artifact to a network share.

I have a Release Definition which references the Build Definition as a Linked Artifact Source. Therefore, when I create a new release where does the Release Definition get the Artifact Does it get it from my published network share? Does it get it from Source Control? How do I know it’s getting it from TFS or Network Share?

I know the Build.ArtifactStagingDirectory gets deleted on every build, so I know it can’t be from that location.


Solution

  • You tied your release definition to a build definition. Build definitions can publish artifacts when they run.

    Your release definition looks at a build run, looks at the artifacts it published, and then retrieves them from whatever location to which they were published. This can be a file share, or it can be within the TFS/Azure DevOps instance itself. Not source control or Azure Artifacts, but rather a completely internal store just for builds.

    Now to directly answer your question: How do you know where the artifact came from? By looking at the build run. How do you know where the artifacts are going to be published in the future? By looking at the build definition.