Skip to content

Move compiler builds and prerequisite checks into tools.ci.build #825

Description

@LunaStev

Motivation

Compiler and LLVM setup procedures are repeated in .github/workflows/rust.yml and .github/workflows/release.yml; missing tools such as ripgrep already caused a CI failure in #817.

Scope

Depends on #824. Implement tools/ci/build.py around the shared Target model. Validate host/tool architectures, Rust/LLVM versions, required linkers, sysroots and tools, then build with the selected backend features and --locked --jobs 2.

Use the existing pinned Windows provisioning and LoongArch/RISC-V helpers where appropriate. Python owns prerequisite decisions and invokes platform installers/helpers; YAML may retain checkout, runtime setup, caches and runner selection. Keep verification separable from explicit provisioning so a local command does not unexpectedly install system packages. Difficulty: hard.

Completion criteria

  • Local and hosted builds use the same target-specific build plan and explicit LLVM/std inputs.
  • Missing/mismatched prerequisites fail before dependent compilation with an actionable diagnostic.
  • Feature-isolated wasm, LoongArch, RISC-V, x86 and AArch64 builds remain covered, including Windows native host checks.
  • Mocked command-plan tests and representative native CI runs verify arguments, paths, environment propagation and failed provisioning.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

ciGitHub CI or CIenhancementA request for a new feature or improvement.help wantedThe issue requires extra attention or help from others.refactorIssues that require code refactoring without changing functionality.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions