Skip to content

fix: GitHub actions with custom runners#373

Open
kapilsingh421 wants to merge 8 commits intomainfrom
fix/github-actions
Open

fix: GitHub actions with custom runners#373
kapilsingh421 wants to merge 8 commits intomainfrom
fix/github-actions

Conversation

@kapilsingh421
Copy link

What changed

  • This PR updates our GitHub Actions workflows to explicitly install and configure all required build dependencies instead of relying on preinstalled runner tooling.

Details

  • Added installation of the stable Rust toolchain to ensure consistent Rust-based builds (Python bindings, PHP extensions, etc.).
  • Added Maven installation after Java setup for Java-based build steps.
  • Installed clang, libclang-dev, and llvm-dev to support bindgen and ext-php-rs.
  • Automatically detected and exported LIBCLANG_PATH using ldconfig to avoid hardcoded paths.
  • Added verification steps to fail early if clang or libclang is missing.
  • Set an explicit .NET install directory in the C# CI workflow to prevent path and permission issues.

@Goldziher Goldziher changed the title Fix/GitHub actions fix: GitHub actions with custom runners Feb 15, 2026
kapilsingh421 and others added 8 commits February 15, 2026 16:57
Revert benchmarks.yaml to main state (remove bare-runner toolchain fixes)
and create a separate benchmarks-custom-runners.yaml targeting dedicated
GCP self-hosted runners for consistent, reproducible benchmark results.

Runner assignment:
- runner-large: setup/build job (Rust compilation)
- runner-medium: all benchmark jobs
- runner-small: validation and aggregation

Includes toolchain installations for bare runners (Rust for Python
bindings, Maven for Java, clang/libclang for PHP).

Triggered on pull_request and workflow_dispatch.
- Java: use setup-maven-4 action (Maven >= 3.9.11 required by enforcer)
- Ruby: mkdir RUNNER_TOOL_CACHE before setup-ruby (permission denied)
- C#: set DOTNET_INSTALL_DIR to writable path (permission denied)
- PHP: search /usr/lib/llvm-*/lib/ for libclang (ldconfig misses it)
- Third-party Python benchmarks: install build-essential (linker cc missing)
- Set RUNNER_TOOL_CACHE at workflow level for all self-hosted runner jobs
…enchmarks

- Ruby: sudo mkdir /opt/hostedtoolcache (ruby/setup-ruby uses runner
  context, not RUNNER_TOOL_CACHE env var)
- Third-party Python benchmarks (docling, markitdown, pdfplumber,
  pymupdf4llm, unstructured, mineru): add rustup install for maturin
  builds triggered by uv run during benchmark execution
…y benchmarks

- Replace rustup install with UV_NO_BUILD_PACKAGE=kreuzberg env var
  and --no-build-package kreuzberg flag on uv sync. The benchmark
  harness uses uv run which triggers building kreuzberg-py via maturin;
  this flag prevents that entirely.
- Ruby: add clang/libclang install + LIBCLANG_PATH export (bindgen
  for rb-sys needs libclang, same issue as PHP)
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.

2 participants

Comments