Skip to content

[web] Optimize LUCI build by reusing build artifacts across platform-specific drones #119036

@yjbanov

Description

@yjbanov

Currently, for each platform (Windows, Linux, macOS) we build every artifact from sources, then run tests. This has a few problems:

  • We're not yet setup to build wasm bits from sources on Windows without WSL, and this prevents us from running tests on Windows against wasm code (new CanvasKit, Skwasm).
  • This is wasteful because we compile all the C++ code, dart2js, and dart2wasm code 3 times, even though the output is bit for bit identical across all platforms.

Request

Add support for compiling all C++ to wasm, dart2js, and dart2wasm code on a single Linux bot (the choice of Linux is simply because it's faster for the price, but otherwise it doesn't matter), then run tests on platform-specific drones.

Expected impact

This will enable running all tests on Windows bots, e.g. we can add Edge tests (currently we use Chromium as a proxy for Edge, but that's limiting because there are some corner cases in accessibility and text input in Edge).

We will use much less macOS and Windows infra capacity because it only takes a couple of minutes to run tests (as opposed to compiling all the code, which takes multiple tens of minutes).

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority issues at the top of the work listc: contributor-productivityTeam-specific productivity, code health, technical debt.platform-webWeb applications specificallyteam-infraOwned by Infrastructure team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions