Procházet zdrojové kódy

CI: add Haiku workflow in haiku.yml

Thomas Waldmann před 1 měsícem
rodič
revize
63e582be6a
1 změnil soubory, kde provedl 86 přidání a 0 odebrání
  1. 86 0
      .github/workflows/haiku.yml

+ 86 - 0
.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"