Open-Source Wikis

/

Apache Arrow

/

Reference

/

CI workflows

apache/arrow

CI workflows

Apache Arrow's CI is implemented as GitHub Actions. Every workflow lives in .github/workflows/. This page summarizes what each one does.

Build / test workflows (one per language)

Workflow Triggers What it builds Where it runs
cpp.yml Push, PR C++ core + Parquet + Acero + Dataset, plus c_glib in many jobs Ubuntu, Fedora, AlmaLinux, macOS, also static-only and bundled-only variants
cpp_extra.yml Manual / scheduled Extended C++ matrix (older toolchains, sanitizers, alternative deps) Various
cpp_windows.yml Push, PR C++ + Parquet on Windows windows-latest
cuda_extra.yml Manual CUDA-enabled C++ build Self-hosted GPU runners
python.yml Push, PR PyArrow with various component combinations Ubuntu, macOS, Windows
r.yml Push, PR R package on Linux + macOS + Windows Multiple R versions
r_extra.yml Manual / scheduled Extended R matrix (cran-likeness checks, dev R, valgrind) Linux
r_nightly.yml Scheduled R-universe nightly builds Ubuntu
ruby.yml Push, PR Ruby gems on Ubuntu, Fedora, AlmaLinux, Debian, macOS Various
matlab.yml Push, PR MATLAB bindings macOS, Linux, Windows with MATLAB runners
archery.yml Push, PR The archery CLI itself Ubuntu

Cross-cutting workflows

Workflow Purpose
integration.yml Runs the cross-language integration test suite (C++ ↔ Java ↔ Go ↔ JS ↔ Rust ↔ C# ↔ nano-arrow).
dev.yml Repository hygiene: pre-commit, clang-format, RAT (Release Audit Tool), generated-file drift checks.
docs.yml Builds the Sphinx documentation.
docs_light.yml Lightweight docs build for PRs that only touch documentation.

Bots and automation

Workflow Purpose
dev_pr.yml Validates PR titles against the GH-NNN: [Component] Title convention.
dev_pr/ Sub-workflows triggered by PR-related events.
pr_bot.yml The bot that handles @github-actions crossbow submit ... comments.
pr_review_trigger.yml Triggers downstream checks when reviews complete.
comment_bot.yml Handles the various comment commands (rebase, label, ...).
check_labels.yml Validates issue/PR labels.
issue_bot.yml Handles the take comment to assign issues.
stale.yml Closes stale issues and PRs.
report_ci.yml Aggregates CI results into a single status.

Release workflows

Workflow Purpose
release.yml Builds release artifacts: source tarball, binary wheels, deb/rpm packages. Triggered by tag pushes.
release_candidate.yml Builds release candidates and posts them for verification.
verify_rc.yml Verifies an RC: signature checks, integration tests, source builds across platforms.
package_linux.yml Builds Linux distro packages (Apt, Yum).

What "required" looks like for a PR

Every PR triggers the per-language workflow for the directories it touched (cpp.yml if cpp/ changed, etc.). The integration workflow runs whenever format files or core C++ change. The lint and PR-validation workflows run on every PR. Crossbow runs are triggered manually by maintainers via pr_bot.yml.

Reusable scripts

Workflows mostly delegate the actual work to scripts in ci/scripts/:

  • cpp_build.sh, cpp_test.sh — C++.
  • python_build.sh, python_test.sh — Python.
  • r_install.sh, r_test.sh, r_pkgdown.sh — R.
  • ruby_test.sh — Ruby + c_glib.
  • c_glib_build.sh, c_glib_test.sh — c_glib.
  • integration_arrow.sh, integration_dask.sh, integration_substrait.sh — Cross-implementation tests.
  • install_minio.sh, install_azurite.sh, install_gcs_testbench.sh — Local cloud-storage emulators.
  • install_thrift.sh, install_protobuf.sh, etc. — Toolchain installers used when building from source.

All of these are also runnable locally inside the corresponding compose.yaml services.

Self-hosted runners

A few workflows use self-hosted runners — notably the CUDA and ARM nightly jobs. The configuration is declared in the workflow files via runs-on: [self-hosted, ...] labels and is provisioned by runs-on.com. The README acknowledges runs-on as a CI sponsor.

Crossbow dispatcher

Crossbow tasks (dev/tasks/) are dispatched via the GitHub Actions in the apache/arrow-crossbow sibling repo. The PR bot in pr_bot.yml triggers a Crossbow run by posting to the dispatcher with a list of tasks. Each task's success/failure is reported back to the originating PR via comment.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

CI workflows – Apache Arrow wiki | Factory