|
@@ -0,0 +1,73 @@
|
|
|
|
|
+name: CI OpenBSD
|
|
|
|
|
+
|
|
|
|
|
+on:
|
|
|
|
|
+ push:
|
|
|
|
|
+ branches: [ master ]
|
|
|
|
|
+ tags:
|
|
|
|
|
+ - '2.*'
|
|
|
|
|
+ pull_request:
|
|
|
|
|
+ branches: [ master ]
|
|
|
|
|
+ paths:
|
|
|
|
|
+ - '**.py'
|
|
|
|
|
+ - '**.pyx'
|
|
|
|
|
+ - '**.c'
|
|
|
|
|
+ - '**.h'
|
|
|
|
|
+ - '**.yml'
|
|
|
|
|
+ - '**.toml'
|
|
|
|
|
+ - '**.cfg'
|
|
|
|
|
+ - '**.ini'
|
|
|
|
|
+ - 'requirements.d/*'
|
|
|
|
|
+ - '!docs/**'
|
|
|
|
|
+
|
|
|
|
|
+jobs:
|
|
|
|
|
+ openbsd_tests:
|
|
|
|
|
+ name: OpenBSD 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 OpenBSD
|
|
|
|
|
+ id: openbsd
|
|
|
|
|
+ uses: cross-platform-actions/action@v0.29.0
|
|
|
|
|
+ with:
|
|
|
|
|
+ operating_system: openbsd
|
|
|
|
|
+ version: '7.7'
|
|
|
|
|
+ shell: bash
|
|
|
|
|
+ cpu_count: 3
|
|
|
|
|
+ memory: 6G
|
|
|
|
|
+ run: |
|
|
|
|
|
+ set -euxo pipefail
|
|
|
|
|
+ # On OpenBSD, use pkg_add and set installurl. Use sudo for privileged operations.
|
|
|
|
|
+ # echo "https://ftp.eu.openbsd.org/pub/OpenBSD" | sudo tee /etc/installurl > /dev/null
|
|
|
|
|
+ # crypto / compression libs
|
|
|
|
|
+ sudo -E pkg_add xxhash || true
|
|
|
|
|
+ sudo -E pkg_add lz4 || true
|
|
|
|
|
+ sudo -E pkg_add zstd || true
|
|
|
|
|
+ # toolchain / VCS
|
|
|
|
|
+ sudo -E pkg_add git || true
|
|
|
|
|
+ sudo -E pkg_add rust || true
|
|
|
|
|
+ # OpenSSL 3.4
|
|
|
|
|
+ sudo -E pkg_add openssl%3.4 || true
|
|
|
|
|
+ # Python tooling
|
|
|
|
|
+ sudo -E pkg_add py3-pip || true
|
|
|
|
|
+ sudo -E pkg_add py3-virtualenv || true
|
|
|
|
|
+
|
|
|
|
|
+ export BORG_OPENSSL_NAME=eopenssl34
|
|
|
|
|
+ # Create and activate a virtualenv
|
|
|
|
|
+ python3 -m virtualenv .venv
|
|
|
|
|
+ . .venv/bin/activate
|
|
|
|
|
+ python -m pip install --upgrade pip
|
|
|
|
|
+ # Install development/test dependencies
|
|
|
|
|
+ pip install -r requirements.d/development.txt
|
|
|
|
|
+ # Build Borg (editable)
|
|
|
|
|
+ pip install -e .
|
|
|
|
|
+ # Run tests; skip benchmarks
|
|
|
|
|
+ pytest -v -n auto --benchmark-skip
|