1# Native Windows GitLab CI builds 2 3Unlike Linux, Windows cannot reuse the freedesktop ci-templates as they exist 4as we do not have Podman, Skopeo, or even Docker-in-Docker builds available 5under Windows. 6 7We still reuse the same model: build a base container with the core operating 8system and infrequently-changed build dependencies, then execute Mesa builds 9only inside that base container. This is open-coded in PowerShell scripts. 10 11## Base container build 12 13The base container build job executes the `mesa_container.ps1` script which 14reproduces the ci-templates behaviour. It looks for the registry image in 15the user's namespace, and exits if found. If not found, it tries to copy 16the same image tag from the upstream Mesa repository. If that is not found, 17the image is rebuilt inside the user's namespace. 18 19The rebuild executes `docker build` which calls `mesa_deps.ps1` inside the 20container to fetch and install all build dependencies. This includes Visual 21Studio Community Edition (downloaded from Microsoft, under the license which 22allows use by open-source projects), other build tools from Chocolatey, and 23finally Meson and Python dependencies from PyPI. 24 25This job is executed inside a Windows shell environment directly inside the 26host, without Docker. 27 28## Mesa build 29 30The Mesa build runs inside the base container, executing `mesa_build.ps1`. 31This simply compiles Mesa using Meson and Ninja, executing the build and 32unit tests. Currently, no build artifacts are captured. 33