Browse Source

CI: add NetBSD workflow in netbsd.yml

Thomas Waldmann 1 month ago
parent
commit
6dee31c968
1 changed files with 76 additions and 0 deletions
  1. 76 0
      .github/workflows/netbsd.yml

+ 76 - 0
.github/workflows/netbsd.yml

@@ -0,0 +1,76 @@
+name: CI NetBSD
+
+on:
+  push:
+    branches: [ master ]
+    tags:
+    - '2.*'
+  pull_request:
+    branches: [ master ]
+    paths:
+    - '**.py'
+    - '**.pyx'
+    - '**.c'
+    - '**.h'
+    - '**.yml'
+    - '**.toml'
+    - '**.cfg'
+    - '**.ini'
+    - 'requirements.d/*'
+    - '!docs/**'
+
+jobs:
+  netbsd_tests:
+    name: NetBSD 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 NetBSD
+      id: netbsd
+      uses: cross-platform-actions/action@v0.29.0
+      with:
+        operating_system: netbsd
+        version: '10.1'
+        shell: bash
+        cpu_count: 3
+        memory: 6G
+        run: |
+          set -euxo pipefail
+          # Configure pkgin repository based on architecture.
+          arch="$(uname -m)"
+          sudo -E mkdir -p /usr/pkg/etc/pkgin
+          echo "http://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/${arch}/10.1/All" | sudo tee /usr/pkg/etc/pkgin/repositories.conf > /dev/null
+          sudo -E pkgin update || true
+          sudo -E pkgin -y upgrade || true
+
+          # Base tools and libraries
+          sudo -E pkgin -y install zstd lz4 xxhash git || true
+          sudo -E pkgin -y install rust || true
+          # Work around NetBSD 9.3 bug with .bash_profile in screen sessions
+          # echo "export PROMPT_COMMAND=" >> ~/.bash_profile || true
+          sudo -E pkgin -y install pkg-config || true
+          # Python 3.11 and tools
+          sudo -E pkgin -y install py311-pip py311-virtualenv || true
+          sudo -E ln -sf /usr/pkg/bin/python3.11 /usr/pkg/bin/python3 || true
+          sudo -E ln -sf /usr/pkg/bin/pip3.11 /usr/pkg/bin/pip3 || true
+          sudo -E ln -sf /usr/pkg/bin/virtualenv-3.11 /usr/pkg/bin/virtualenv3 || true
+
+          # 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