Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 51 additions & 14 deletions .github/workflows/cross-platform-actions.yml
Original file line number Diff line number Diff line change
@@ -1,45 +1,82 @@
name: BSD, Haiku, OmniOS

on: [push, pull_request]
on: [ push, pull_request ]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
operating_system: [ freebsd, haiku, netbsd, omnios, openbsd ]
operating_system: [ dragonflybsd, freebsd, haiku, midnightbsd, netbsd, omnios, openbsd ]
architecture: [ arm64, x86-64 ]
include:
- operating_system: dragonflybsd
version: '6.4.2'
pkginstall: |
sudo pkg update
sudo pkg install -y cmake ninja
- operating_system: freebsd
version: '15.0'
pkginstall: sudo pkg update && sudo pkg install -y cmake git ninja
pkginstall: |
sudo pkg update
sudo pkg install -y cmake ninja
- operating_system: haiku
version: 'r1beta5'
pkginstall: pkgman refresh && pkgman install -y cmake git ninja
pkginstall: |
pkgman update -y
pkgman install -y cmake ninja
- operating_system: midnightbsd
version: '4.0.4'
pkginstall: |
sudo mport upgrade
sudo mport install cmake ninja || true
- operating_system: netbsd
version: '10.1'
pkginstall: sudo pkgin update && sudo pkgin -y install clang cmake git ninja-build
pkginstall: |
sudo pkgin update
sudo pkgin -y install clang cmake ninja-build
- operating_system: omnios
version: 'r151056'
pkginstall: sudo pkg refresh && sudo pkg install build-essential cmake git ninja
version: 'r151058'
pkginstall: |
sudo pkg refresh
sudo pkg install build-essential cmake ninja
- operating_system: openbsd
version: '7.8'
pkginstall: sudo pkg_add -u && sudo pkg_add cmake git ninja
version: '7.9'
pkginstall: |
sudo pkg_add -u
sudo pkg_add cmake ninja
exclude:
- operating_system: dragonflybsd
architecture: arm64
- operating_system: haiku
architecture: arm64
- operating_system: midnightbsd
architecture: arm64
- operating_system: omnios
architecture: arm64

steps:
- uses: actions/checkout@v6

- uses: cross-platform-actions/action@v1
- name: Start VM
uses: cross-platform-actions/action@v1
with:
operating_system: ${{ matrix.operating_system }}
architecture: ${{ matrix.architecture }}
version: ${{ matrix.version }}
run: |
${{ matrix.pkginstall }}
cmake -B build -DCMAKE_BUILD_TYPE=Release -G Ninja
cmake --build build --config Release

- name: Set up build environment
run: ${{ matrix.pkginstall }}
shell: cpa.sh {0}

- name: Reboot VM
run: cpa.sh --reboot
if: matrix.operating_system == 'haiku'

- name: Configure CMake
run: cmake -B build -DCMAKE_BUILD_TYPE=Release -G Ninja
shell: cpa.sh {0}

- name: Build
run: cmake --build build --config Release
shell: cpa.sh {0}
Loading