CI: add *BSD #10
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/[email protected] | |
| with: | |
| operating_system: haiku | |
| version: 'r1beta5' | |
| shell: bash | |
| cpu_count: 3 | |
| 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 -n auto --benchmark-skip -k "not remote" |