Closed Bug 1507884 Opened 9 months ago Closed 8 months ago

Stand up webrender CI on Firefox CI (Linux edition)

Categories

(Core :: Graphics: WebRender, enhancement, P2)

Other Branch
enhancement

Tracking

()

RESOLVED FIXED
mozilla66
Tracking Status
firefox66 --- fixed

People

(Reporter: kats, Assigned: kats)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [gfx-noted])

Attachments

(3 files)

As part of moving WR's canonical repository to m-c, we need to ensure all of Webrender current CI is run appropriately. This bug is specifically about standing up the Linux CI tasks. These tasks are currently run via taskcluster-github in docker-worker. There are two tasks: one for "release" and one for "debug" tests; both are described in the .taskcluster.yml file in the WR repo.

It's fairly straightforward to migrate the dockerfile to Firefox CI, and so the actual test commands can run mostly as-is. The one thing we want to watch out for, which Jeff pointed out in the planning doc, is that wrench has dependencies that are not vendored into m-c. I checked and vendoring all of wrench's dependencies would double the size of third_party/rust from ~200M to ~400M and so is not really desirable. On the other hand, downloading the dependencies from crates.io on every CI run is also not desirable because these CI runs may be frequent (consuming lots of network bandwidth) and makes us dependent on crates.io staying up.

Instead, we have a plan where we have one task which effectively runs cargo-vendor on the WR lockfile to download all the dependencies, and exports that tarball as an artifact. Then the other task (which actually builds and runs wrench) can grab that artifact and use it when building wrench.
Assignee: nobody → kats
I realized that the caching of the vendored-dependency tarball doesn't work in the above try push. I need to do some of this add_optimization [1] stuff to cache it properly.

[1] https://searchfox.org/mozilla-central/rev/b03a62c3c82316e733a3b09622c1cb7e59f64cc3/taskcluster/taskgraph/util/cached_tasks.py#20
Priority: -- → P2
Although this task technically doesn't build a toolchain, the set of
steps it needs to do is very similar to what a toolchain build does, so
we're shoehorning this task into the toolchain kind. The task basically
runs `cargo vendor` on the gfx/wr/Cargo.lock file (if/when it changes)
and exports a tarball of the resulting vendored crates. This allows
downstream tasks that build stuff in gfx/wr to not have to re-fetch
these crates from crates.io on every test run.

Depends on D14405
Attachment #9031092 - Attachment description: Bug 1507884 - Add a wrench-deps toolchain to provide a tarball of crates wrench depends on. r?tomprince → Bug 1507884 - Add a wrench-deps toolchain to provide a tarball of crates wrench depends on. r?glandium
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6e1f294a463b
Add a docker image for building and testing webrender standalone. r=glandium
https://hg.mozilla.org/integration/autoland/rev/4883a998472e
Add a wrench-deps toolchain to provide a tarball of crates wrench depends on. r=glandium
https://hg.mozilla.org/integration/autoland/rev/cc290b5855eb
Add tasks for linux-based testing of webrender standalone. r=jrmuizel
https://hg.mozilla.org/mozilla-central/rev/6e1f294a463b
https://hg.mozilla.org/mozilla-central/rev/4883a998472e
https://hg.mozilla.org/mozilla-central/rev/cc290b5855eb
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla66
You need to log in before you can comment on or make changes to this bug.