Investigate options for expanding CI coverage to a wider range of projects.

Details

Description

Core projects like universal, infusion, et cetera have CI integration set up using a mixture of Jenkins and BuildKite. We need to review our configuration, look at our core requirements, and then configure one or more test projects to use our best guess at the next-gen CI we want to use with our projects.

Based on our usage of Jenkins, et cetera, these are the key features for our "open source" development:

We should be able to run builds that include node tests, browser tests and platform integration tests (the windows repo, for example).

It should be possible to launch a build to verify that all tests pass for a submitted pull request.

This should support our primary way of creating pull requests, which is to fork a core repository and submit the PR from there.

Builds should only be launched when an approved contributor either takes action (such as committing or making a comment like "ok to test" on a PR)

It should be possible to rerun a build from the context of a PR.

Build results should be visible from the PR and a password should not be required to view the results.

It should be possible to manage the build configuration from within a branch, so that devs can submit proposed changes to the build configuration itself for review.

In addition, there are likely key requirements from the DevOps team, we should discuss whether / how to handle those, either using the same system, or using two systems, each of which is suited to the particular development/PR workflow.