Skip to content

CI: wire RIVE_PREBUILT_LIBS to skip the native C++ build on most runs #11

Description

@Bantarus

Today every ci.yml run rebuilds rive's 10 static libs + the shim from source (premake -> make -> clang), the dominant cost. build.rs already honours RIVE_PREBUILT_LIBS=<dir> to link pre-archived libs and skip premake/make/clang AND the submodule entirely (BUILD.md §8; produced by tools/archive_prebuilt.sh).

Goal: a build-once-then-cache flow.

  • A scheduled (or submodule-SHA-triggered) job builds the libs from source and uploads the archive set per (OS, profile, triple) via actions/cache or actions/upload-artifact.
  • The regular build-lint-doc job restores that archive and sets RIVE_PREBUILT_LIBS so it skips the C++ toolchain and only compiles Rust + the shim's consumers.

Constraints: the archive is ABI-specific (toolchain + Cargo profile debug/release link DIFFERENT rive libs + target triple) — one cached set per combination, keyed on the submodule commit + build.rs hash. Validate a cache-miss still falls back to a correct from-source build.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions