|
@@ -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"
|