Skip to content

ci: keep the Skia cache across unrelated changes and failing later steps - #208

Merged
triniwiz merged 1 commit into
masterfrom
ci/skia-cache-key
Nov 12, 2026
Merged

triniwiz merged 1 commit into
masterfrom
ci/skia-cache-key

Conversation

@triniwiz

Copy link
Copy Markdown
Member

The Skia cache almost never hits. The 3.0.5 release built Skia from source for every Apple target: Canvas iOS took 121 minutes, about 11 of every 12 per target spent in Skia. There are two causes.

The key was too broad. It hashed every Cargo.toml, all of tools/scripts/*.sh and the Makefile, so any dependency bump or script edit dropped every entry. #206 and #207 each did. The key now covers:

  • the Cargo.toml lines that mention skia, and every [features] section, because Skia's features arrive through feature chains such as canvas-ios → canvas-2d/metal → skia-safe/metal. Carriage returns are stripped so Windows checkouts hash the same way.
  • the Makefile, .cargo/config.toml, the pre-build.sh files, the scripts that invoke cargo, and the toolchain setup actions.

Computed locally, the key is the same for 3.0.5, #206 and #207, and a change to a Skia feature changes it.

The save was the last step of each job. A failing test, AAR or xcframework step therefore threw away a Skia build that had succeeded, as today's audio test failure did on Linux. Each job now saves right after its Rust build.

Entries are still saved only by master pushes. The canvas iOS, canvas-svg iOS and canvas Android entries will exist once one master run gets past its Rust builds.

The Skia cache key hashed every Cargo.toml, all build scripts and the
Makefile, so any dependency or script change dropped every entry. Key it on
the skia lines and [features] chains of the Cargo.toml files plus the
scripts and setup that feed cargo's environment.

Each job saved the cache as its last step, so a failing test, AAR or
xcframework step lost a Skia build that had succeeded. Save it right after
the Rust build.
@coderabbitai

coderabbitai Bot commented Nov 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b6cc13cd-c99c-4412-b498-260f1156779e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@triniwiz
triniwiz merged commit f72de9b into master Nov 12, 2026
14 of 25 checks passed
@triniwiz
triniwiz deleted the ci/skia-cache-key branch November 12, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant