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
andbuildbox-casd
in native windows.- Building these is likely to be highly time-consuming.
-
Produce automated instructions for buildbox-common
andbuildbox-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 build
ing an import element can be easily disabled.
Edited by Jonathan Maw