Azure Pipelines - Is there a way to view the folder structure?

I'm struggling to picture the folder structure of azure pipelines. I know there are some implicit directories like:

  • $(System.DefaultWorkingDirectory)
  • $(Build.ArtifactStagingDirectory)

Which are both folders on a specific build agent available from the pool.

Is there a way to view the folder structure and get a better understanding how things are laid out?


You can use CMD task to call tree command in Microsoft-Hosted windows agent to get the folder structure.

My script:

echo "Structure of work folder of this pipeline:"
tree $(Agent.WorkFolder)\1 /f

echo "Build.ArtifactStagingDirectory:" 

echo "$(Build.ArtifactStagingDirectory)"

echo "Build.BinariesDirectory:" 

echo "$(Build.BinariesDirectory)"

echo "Build.SourcesDirectory:"

echo "$(Build.SourcesDirectory)"

The result:

enter image description here

$(Agent.WorkFolder) represents the working folder for current agent, $(Agent.WorkFolder)\1 represents the working folder for current pipeline.(Normally the first pipeline will be put in $(Agent.WorkFolder)\1, and the second $(Agent.WorkFolder)\2...)

So it's obvious that for one pipeline run, it has four folders by default: a(artifact folder), b(binaries folder), s(source folder) and TestResults(Test results folder). The s folder is where the source code files are downloaded. For build pipeline: $(Build.SourcesDirectory),$(Build.Repository.LocalPath) and $(System.DefaultWorkingDirectory) represent the same folder. More details see predefined variables.


Another option is to add this to a YAML pipeline:

-powershell: Get-ChildItem -Path 'Insert root path' -recurse

It will look something like:

Get-ChildItem -Path C:\Test\*.txt -Recurse -Force

Directory: C:\Test\Logs\Adirectory

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 Afile4.txt
-a-h--        2/12/2019     15:52             22 hiddenfile.txt
-a----        2/13/2019     13:26             20 LogFile4.txt

    Directory: C:\Test\Logs\Backup

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 ATextFile.txt
-a----        2/12/2019     15:50             20 LogFile3.txt

    Directory: C:\Test\Logs

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 Afile.txt
-a-h--        2/12/2019     15:52             22 hiddenfile.txt
-a----        2/13/2019     13:26             20 LogFile1.txt

    Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/13/2019     08:55             26 anotherfile.txt
-a----        2/12/2019     15:40         118014 Command.txt
-a-h--        2/12/2019     15:52             22 hiddenfile.txt
-ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

Here is documentation on the Get-ChildItem command if you need more information


The documentation gives you examples of the folder structure. If that's not enough, add a PowerShell step that runs gci -rec -directory | select-object fullname or similar.


It looks more like this(work directory of an Agent):

enter image description here