Skip to content

CI: add *BSD

CI: add *BSD #10

Workflow file for this run

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"