From 63e582be6a69f107db7b3c03f7792243b545b14e Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Thu, 6 Nov 2025 20:40:19 +0100 Subject: [PATCH] CI: add Haiku workflow in haiku.yml --- .github/workflows/haiku.yml | 86 +++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 .github/workflows/haiku.yml diff --git a/.github/workflows/haiku.yml b/.github/workflows/haiku.yml new file mode 100644 index 000000000..d4a5e3953 --- /dev/null +++ b/.github/workflows/haiku.yml @@ -0,0 +1,86 @@ +name: CI Haiku + +on: + push: + branches: [ master ] + tags: + - '2.*' + pull_request: + branches: [ master ] + paths: + - '**.py' + - '**.pyx' + - '**.c' + - '**.h' + - '**.yml' + - '**.toml' + - '**.cfg' + - '**.ini' + - 'requirements.d/*' + - '!docs/**' + +jobs: + haiku_tests: + name: Haiku tests + runs-on: ubuntu-24.04 + timeout-minutes: 90 + continue-on-error: true + + steps: + - name: Check out repository + uses: actions/checkout@v4 + with: + # setuptools-scm needs full history for versioning + fetch-depth: 0 + fetch-tags: true + + - name: Run on Haiku + id: haiku + uses: cross-platform-actions/action@v0.29.0 + with: + operating_system: haiku + version: 'r1beta5' + shell: bash + cpu_count: 2 + memory: 6G + run: | + set -euxo pipefail + # Refresh repositories + pkgman refresh || true + # pkgman update -y || true + + # Base tools and libraries + pkgman install -y git pkgconfig zstd lz4 xxhash || true + pkgman install -y openssl3 || true + pkgman install -y rust_bin || true + pkgman install -y python3.10 || true + pkgman install -y cffi || true + python3 -V || true + # Development headers and pkg-config files needed for building C extensions + pkgman install -y lz4_devel zstd_devel xxhash_devel openssl3_devel libffi_devel || true + + # Ensure pkg-config can find .pc files + export PKG_CONFIG_PATH="/system/develop/lib/pkgconfig:/system/lib/pkgconfig:${PKG_CONFIG_PATH:-}" + + # Point Borg build to library/include prefixes (avoids pkg-config name mismatches) + export BORG_LIBLZ4_PREFIX=/system/develop + export BORG_LIBZSTD_PREFIX=/system/develop + export BORG_LIBXXHASH_PREFIX=/system/develop + export BORG_OPENSSL_PREFIX=/system/develop + + # Ensure pip is available + python3 -m ensurepip --upgrade || true + python3 -m pip install --upgrade pip wheel + + # Create and activate a virtualenv + python3 -m venv .venv + . .venv/bin/activate + + python -V + # Install development/test dependencies + pip install -r requirements.d/development.txt + # Build Borg (editable) + pip install -e . + # Run tests; skip benchmarks + # remote archiver tests are broken on Haiku + pytest -v --benchmark-skip -k "not remote and not socket"