name: Build Linux
on:
workflow_call:
jobs:
linux:
strategy:
fail-fast: false
matrix:
include:
- { name: x64, os: ubuntu-latest, system: x86_64-linux, shell: winelibs, winelibs: "ON" }
- { name: arm64, os: ubuntu-24.04-arm, system: aarch64-linux, shell: default, winelibs: "OFF" }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with:
persist-credentials: false
- uses: DeterminateSystems/nix-installer-action@3138316df39ed29be04236d7ffc686fa525866aa with:
diagnostic-endpoint: ""
extra-conf: |
substituters = https://cache.nixos.org
experimental-features = nix-command flakes
- name: Build all configurations
env:
PRISM_BUILD_WINELIBS: ${{ matrix.winelibs }}
run: |
nix develop --ignore-environment --keep HOME --keep PRISM_BUILD_WINELIBS ".#devShells.${{ matrix.system }}.${{ matrix.shell }}" -c ./tools/build-linux.sh
- name: Package
run: |
nix develop --ignore-environment --keep HOME --keep PRISM_BUILD_WINELIBS ".#devShells.${{ matrix.system }}.${{ matrix.shell }}" -c ./tools/package-linux.sh "${{ matrix.name }}"
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a with:
name: linux-${{ matrix.name }}
path: prism-linux-${{ matrix.name }}.zip