Our Azure pipelines configuration is found at the root of the repository, e.g. [azure-pipelines.yml](https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/main/azure-pipelines.yml)
The status and results of jobs are reported as [Github Checks](https://docs.github.com/github/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks).
A lot of the pipeline jobs make use of [Cake Tasks](https://cakebuild.net/docs/writing-builds/tasks/) defined in [build/build.cake](https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/main/build/build.cake).
Cake Tasks are invoked through [build/build.ps1](https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/main/build/build.ps1) in the pipelines config, and the various tasks can be ran from powershell using the **Target** option, for example `.\build.ps1 -Target UpdateHeaders`.
Cake tasks can be added to the cake file, either to be executed directly from the pipelines config or to be invoked manually.
Also any task can be added as a dependency to another Task.
When `.\build.ps1` is ran (without any options), it runs the Task "Default" and thus all its dependencies.
This task if not typically used in the build pipeline, but it is useful for locally running a most of the CI pipeline locally in order to test changes locally without having to wait on the CI Server.
All our projects are built - this includes libraries, tests, and the Sample app.
While this step is primarily used to feed into the package build process, it also makes sure that there are not compilation issues with the libraries, as well no compilation issues with the sample app.