name: CI on: push: branches: [main] pull_request: workflow_dispatch: jobs: build: strategy: fail-fast: false matrix: include: - os: ubuntu-latest system: x86_64-linux - os: macos-latest system: x86_64-darwin - os: ubuntu-latest system: aarch64-linux name: Build (${{ matrix.system }}) runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Setup QEMU if: matrix.system == 'aarch64-linux' uses: docker/setup-qemu-action@v3 with: platforms: "arm64" - name: Install Nix if: matrix.system != 'aarch64-linux' uses: DeterminateSystems/nix-installer-action@v9 - name: Install Nix (with aarch64) if: matrix.system == 'aarch64-linux' uses: DeterminateSystems/nix-installer-action@v9 with: extra-conf: "extra-platforms = aarch64-linux arm-linux" - name: Setup Cachix uses: cachix/cachix-action@v13 with: name: getchoo authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - name: Run build run: | args=( --inputs-from . --override-input nixpkgs nixpkgs github:Mic92/nix-fast-build -- \ --no-nom \ --skip-cached \ --systems '${{ matrix.system }}' --option accept-flake-config true \ --flake '.#packages' ) nix run "${args[@]}" check: strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] name: Check flake (${{ matrix.os }}) runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Install Nix uses: DeterminateSystems/nix-installer-action@v9 - name: Run check run: | args=( --print-build-logs --show-trace --accept-flake-config ) nix flake check "${args[@]}"