Skip to content

Use GitLab's fleet for Windows CI

René de Hesselle requested to merge windows_ci into master

Make Windows CI more reliable and reproducible

  • We use GitLab's fleet and not our custom runner, gaining the ability to run multiple properly isolated Windows builds in parallel.
  • We use https://gitlab.com/inkscape/deps/windows to manage the msys2-based dependencies, gaining the ability to pin a set of dependencies for as long as we like. (We do not gain the ability to pick specific individual package versions of our choosing as this is not supported by msys2.)

Drawbacks

  • The main build job will regularly fail on purpose and restart itself if it approaches the runner-imposed limit of 120 minutes runtime. The cache will be saved and the restarted job will basically pick up where the previous one left off (with a little overhead). It will finish eventually and the final result will be green pipeline.
  • The build job will also restart on actual failure. Properly distinguishing between "timeout failure" and "real failure" is not implemented yet. (Although it's documented how to do this, initial testing showed unreliable results.)

Breaking changes

  • No more builds for 32bit Windows. This drops support for 15+ years old hardware.

Out of scope (for now)

  • Test job is not implemented. It hasn't been active in months (it was disabled because it kept failing and nobody wanted to fix it) and is therefore of no priority.
  • MSI package is not being built yet. This will be implemented later.
  • The build artifact is not uploaded to alpha. I'm assuming this is a minor loss of convenience, everything is always available in GitLab.
Edited by René de Hesselle

Merge request reports