mirror of
https://github.com/logos-messaging/nim-sds.git
synced 2026-02-16 20:13:23 +00:00
89 lines
2.4 KiB
YAML
89 lines
2.4 KiB
YAML
name: ci / nix
|
|
permissions:
|
|
contents: read
|
|
pull-requests: read
|
|
checks: write
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
# Fast check — catches eval errors without building
|
|
check:
|
|
name: 'flake check'
|
|
runs-on: [self-hosted, Linux, X64]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- name: 'Nix flake check'
|
|
run: nix flake check '.?submodules=1' --accept-flake-config
|
|
|
|
# Run tests on both platforms
|
|
test:
|
|
name: 'test / ${{ matrix.system }}'
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- system: x86_64-linux
|
|
runs_on: [self-hosted, Linux, X64]
|
|
- system: aarch64-darwin
|
|
runs_on: [self-hosted, macOS, ARM64]
|
|
runs-on: ${{ matrix.runs_on }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- name: 'Run tests'
|
|
run: |
|
|
nix develop '.?submodules=1' --accept-flake-config --command \
|
|
nimble test
|
|
|
|
# Build desktop library
|
|
build-desktop:
|
|
name: '${{ matrix.system }} / libsds'
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- system: aarch64-darwin
|
|
runs_on: [self-hosted, macOS, ARM64]
|
|
- system: x86_64-linux
|
|
runs_on: [self-hosted, Linux, X64]
|
|
runs-on: ${{ matrix.runs_on }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- name: 'Build libsds'
|
|
run: |
|
|
nix build -L '.?submodules=1#libsds' \
|
|
--print-out-paths --accept-flake-config
|
|
- name: 'Verify output'
|
|
run: file result/lib/*
|
|
|
|
# Build Android targets only on Linux — avoids macOS cross-compile issues
|
|
build-android:
|
|
name: 'x86_64-linux / ${{ matrix.nixpkg }}'
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
nixpkg:
|
|
- libsds-android-arm64
|
|
- libsds-android-amd64
|
|
- libsds-android-x86
|
|
- libsds-android-arm
|
|
runs-on: [self-hosted, Linux, X64]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- name: 'Build ${{ matrix.nixpkg }}'
|
|
run: |
|
|
nix build -L '.?submodules=1#${{ matrix.nixpkg }}' \
|
|
--print-out-paths --accept-flake-config
|
|
- name: 'Verify output'
|
|
run: file result/jni/**/* 2>/dev/null || file result/lib/*
|