Add remote execution tests to the CI pipeline
Description
This is an attempt at introducing remote execution testing (_sandboxremote.py
) as part of BuildStream CI. It uses BuildGrid as the remote execution service.
Note: BuildGrid hasn't had any stable release yet, so the CI job relies on nightly images. Considering that there is not stability guaranty using those images, the BuildStream CI job is marked with allow_failure: true
, thus not blocking a merge on failure.
The main requirements that have been driving the design of this implementation include:
- Being able to access client (BuildStream) and server (BuildGrid) logs from the CI job/pipeline.
- Produce client side (BuildStream) test coverage data and aggregate them in the global report for the pipeline.
Please keep these in mind while reviewing: the proposed implementation is not as neat as it could be, but this is largely because we want to fulfil these requirements.
Changes proposed in this merge request:
-
Add a marker for remote execution tests. -
Add simple remote execution tests building the integration test project. -
Introduce a new dedicated CI test job that would: -
Spin-up a remote execution service (using Docker Compose): - A Exec + CAS + AS service (BuildGrid, using the
buildgrid:nightly
Docker image) - A Ref + CAS service (BuildGrid, using the
buildgrid:nightly
Docker image) - A (single)
buildbox
bot worker able to perform BuildStream builds.
- A Exec + CAS + AS service (BuildGrid, using the
-
Run the remote execution tests (only) -
Produce client and server side logs and client side coverage report.
-
-
Publish HTML coverage reports as static pages.
This merge request, when approved, will address: #629 (closed)