Skip to content

Add CI for native windows support

Background

NOTE: This is based on the assumption that win32 refers to the windows API, not running on a 32-bit Windows system, as there is some ambiguity.

There is an ongoing effort (#1021) to add native windows support to buildstream, and a need to ensure that this support doesn't bit rot, or at least where functionality breaks it is known exactly when this happens.

The proposed solution is to set up a CI runner and CI jobs to exercise the currently-implemented functionality. Work has apparently been made to support:

  • bst init
  • bst help
  • bst workspace list (possibly)

And there are currently experimental branches to allow bst build for import elements.

Task description

  • Manually set up a Windows system to run CI jobs in native Windows
    • Install Python and Pip
    • Install BuildStream's pip dependencies
    • Install a native windows gitlab runner
  • Produce automated instructions to spin up a runner from scratch
    • There is already a script to spin up a runner at gitlab.com/jonathanmaw/wsl-setup-script that can be modified, though if there's spare time it might be worth looking into other tools (ansible or packer scripts?)
  • Add gitlab CI for native windows to exercise bst init and `bst help functionality.
    • Using tox or pytest is not necessary, but will be simpler if tox or pytest "just work" (modulo nearly every test failing).
    • If these steps prove to be time-consuming, these tests should be set to only run on master, otherwise we will block buildstream's CI.
  • Install the experimental branches of buildbox-common and buildbox-casd in native windows.
    • Building these is likely to be highly time-consuming.
  • Produce automated instructions for buildbox-common and buildbox-casd installation.
    • It must be relatively easy to specify different refs of buildbox-common and buildbox-casd, so upgrading to the latest version of these (e.g. when there are more fixes) is easy.
  • Add gitlab CI for native windows to exercise bst build on import elements.
    • It must be relatively easy to disable this or make it optional.

Acceptance Criteria

  • When CI runs against master, tests are run to check windows 10 support for:
    • bst init
    • bst help
    • bst build of an import element.
  • The test for bst building an import element can be easily disabled.

Edited by Jonathan Maw
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information