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: Run Flake checks if: ${{ matrix.system == 'x86_64-linux' }} run: | nix flake check --show-trace - name: Build all packages env: SYSTEM: ${{ matrix.system }} run: | nix build \ --fallback --print-build-logs --show-trace \ ".#hydraJobs.$SYSTEM.all-packages" release-gate: name: Release 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