name: CI on: push: branches: [main] pull_request: workflow_dispatch: jobs: build: name: Build (${{ matrix.system }}) strategy: fail-fast: false matrix: include: - os: ubuntu-latest system: x86_64-linux - os: macos-latest system: aarch64-darwin - os: macos-13 system: x86_64-darwin - os: ubuntu-24.04-arm system: aarch64-linux runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Nix uses: DeterminateSystems/nix-installer-action@v16 - name: Setup Cachix uses: cachix/cachix-action@v15 with: name: getchoo authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - name: Evaluate flake run: | nix flake check \ --no-build \ --show-trace - name: Run build run: | nix run \ github:Mic92/nix-fast-build -- \ --no-nom \ --skip-cached \ --systems '${{ matrix.system }}' \ --option accept-flake-config true \ --option allow-import-from-derivation false \ --flake '.#packages.${{ matrix.system }}' check: name: Check flake runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Nix uses: DeterminateSystems/nix-installer-action@v16 - name: Run check run: | nix flake check \ --accept-flake-config \ --print-build-logs \ --show-trace build-gate: name: Build gate needs: build if: ${{ always() }} runs-on: ubuntu-latest steps: - name: Exit with error if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }} run: exit 1