name: CI on: push: branches: - main pull_request_review: workflow_dispatch: permissions: contents: read jobs: flake-check: name: Flake Check runs-on: [self-hosted, nix-builder] needs: [format-check] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Check flake run: nix flake check --show-trace --print-build-logs format-check: name: Format Check runs-on: [self-hosted, nix-builder] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Check formatting run: | nix fmt **/*.nix if ! git diff --quiet; then echo "::error::Code is not formatted. Please run 'nix fmt **/*.nix' locally." git diff exit 1 fi eval-configs: name: Evaluate Key Configurations runs-on: [self-hosted, nix-builder] needs: [flake-check, format-check] strategy: matrix: config: - nix-builder - nix-laptop1 - nix-desktop1 fail-fast: false steps: - name: Checkout repository uses: actions/checkout@v4 - name: Evaluate configuration run: | echo "Evaluating configuration for ${{ matrix.config }}" nix eval .#nixosConfigurations.${{ matrix.config }}.config.system.build.toplevel.drvPath \ --show-trace eval-artifacts: name: Evaluate Artifacts runs-on: [self-hosted, nix-builder] needs: [flake-check, format-check] strategy: matrix: artifact: - lxc-nix-builder - installer-iso-nix-laptop1 fail-fast: false steps: - name: Checkout repository uses: actions/checkout@v4 - name: Evaluate artifact run: | echo "Evaluating artifact ${{ matrix.artifact }}" nix eval .#${{ matrix.artifact }}.drvPath \ --show-trace