Build output (/artifacts)
The layout of build output is documented in Arcade docs and is the same for all repositories on Arcade SDK. Some directories are optional, e.g. repositories that do not build VS components naturally do not create VSSetup and VSSetup.obj directories.
Roslyn adds the following to VSSetup:
VSSetup directory is published by official build to Azure Pipelines Artifact Store and picked up from there by Roslyn Insertion Tool. Everything needed for insertion must be places to this directory.
Engineering directory (/eng)
This directory contains scripts, targets and configuration used by the build.
You can run the above scripts directly from your local clone. No arguments are required, although you might want to specify configuration if Debug is not what you want to test. The scripts are designed to execute exactly the same logic as on CI machine, modulo real signing and publishing. These run in validation-only mode when executed in non-official build (locally or during PR validation).
Common engineering directory (/eng/common)
This directory contains bootstrapper scripts that are common across all Arcade repositories. The Arcade engineering system will overwrite these periodically, so don’t make any permanent changes here, they will disappear without notice.
Scripts directory (/scripts)
This directory is used for helper scripts that are manually executed and not essential for CI build.
.dotnet, .tools, .packages
These directories might be created in the repository root under certain circumstances. The bootstrapper script uses them to store downloaded .NET Core (when the required version is not found on PATH), vswhere (when building from environment that is not initialized with VS env variables) and restored NuGet packages (on CI when not using global nuget cache), respectively.
Official build artifacts publishing
The official build does not publish to cpvsbuild share anymore. Instead it publishes
I moved all scripts that are not used in build/CI there. These can definitely use some clean up.