dotfiles

My PC Dotfiles & Website

check.yml (1600B)


name: "ci: Check Syntax"
on:
  workflow_dispatch:
  push:
    paths:
      - "**.lock"
      - "**.nix"
env:
  NIX_SHOW_STATS: 1
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - name: Clone Repo
        uses: actions/checkout@v7
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          fetch-depth: 0
      - name: Install Nix
        uses: cachix/install-nix-action@v31
        with:
          extra_nix_config: |
            experimental-features = nix-command flakes
            accept-flake-config = true
            access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
      - name: Check Syntax
        run: |
          set -euo pipefail
          system="$(nix eval --raw --impure --expr builtins.currentSystem)"

          for host in $(nix eval --raw '.#nixosConfigurations' \
            --apply 'c: builtins.concatStringsSep " " (builtins.attrNames c)')
          do
            echo "::group::Evaluating configuration '${host}'"
            nix eval --raw --show-trace \
              ".#nixosConfigurations.${host}.config.system.build.toplevel.drvPath" > /dev/null
            echo "::endgroup::"
          done

          for output in packages devShells
          do
            echo "::group::Evaluating '${output}'"
            nix eval --show-trace ".#${output}.${system}" \
              --apply 'builtins.mapAttrs (_: v: v.drvPath)' > /dev/null
            echo "::endgroup::"
          done

          echo "::group::Evaluating 'formatter'"
          nix eval --raw --show-trace ".#formatter.${system}.drvPath" > /dev/null
          echo "::endgroup::"