name: CI on: pull_request: merge_group: concurrency: group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} cancel-in-progress: true jobs: sort-build-systems: runs-on: ubuntu-22.04 steps: - uses: cachix/install-nix-action@v23 with: nix_path: nixpkgs=channel:nixos-unstable - uses: actions/checkout@v4 - name: Check format run: nix-shell --packages jq diffutils --run "diff --unified overrides/build-systems.json <(jq --from-file overrides/sort-build-systems.jq --raw-output --sort-keys < overrides/build-systems.json)" nixpkgs-fmt: runs-on: ubuntu-latest steps: - uses: cachix/install-nix-action@v23 with: nix_path: nixpkgs=channel:nixos-unstable - uses: actions/checkout@v4 - name: Check format run: nix run 'nixpkgs#nixpkgs-fmt' -- --check . black-fmt: runs-on: ubuntu-latest steps: - uses: cachix/install-nix-action@v23 with: nix_path: nixpkgs=channel:nixos-unstable - uses: actions/checkout@v4 - uses: cachix/cachix-action@v12 with: name: poetry2nix signingKey: "VhaWuN3IyJVpWg+aZvTocVB+W8ziZKKRGLKR53Pkld3YRZxYOUfXZf0fvqF+LkqVW0eA60trVd5vsqNONpX9Hw==" - name: Check format run: nix develop -c black --check . nix-matrix: runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v23 - id: set-matrix name: Generate Nix Matrix run: | set -Eeu echo "matrix=$(nix eval --json '.#githubActions.matrix')" >> "$GITHUB_OUTPUT" nix-build: needs: nix-matrix runs-on: ${{ matrix.os }} strategy: matrix: ${{fromJSON(needs.nix-matrix.outputs.matrix)}} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v23 - uses: cachix/cachix-action@v12 with: name: poetry2nix signingKey: "VhaWuN3IyJVpWg+aZvTocVB+W8ziZKKRGLKR53Pkld3YRZxYOUfXZf0fvqF+LkqVW0eA60trVd5vsqNONpX9Hw==" - run: nix build -L ".#${{ matrix.attr }}" collect: runs-on: ubuntu-latest needs: - nixpkgs-fmt - black-fmt - nix-build - sort-build-systems steps: - run: true