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