This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

Add GitHub Actions CI workflow

Evaluates all NixOS and Darwin configurations on every push and pull request.
Also checks code formatting and runs basic flake checks.

+60
+60
.github/workflows/ci.yml
··· 1 + name: CI 2 + 3 + on: 4 + push: 5 + pull_request: 6 + 7 + jobs: 8 + eval-machines: 9 + runs-on: ubuntu-latest 10 + steps: 11 + - uses: actions/checkout@v4 12 + with: 13 + # Fetch all history for git-based operations 14 + fetch-depth: 0 15 + 16 + - uses: DeterminateSystems/nix-installer-action@main 17 + with: 18 + extra-conf: | 19 + experimental-features = nix-command flakes 20 + 21 + - uses: DeterminateSystems/magic-nix-cache-action@main 22 + 23 + - name: Check flake 24 + run: nix flake check --no-build 25 + 26 + - name: Evaluate all NixOS configurations 27 + run: | 28 + echo "Evaluating NixOS configurations..." 29 + failed=0 30 + for machine in $(nix eval --json .#nixosConfigurations --apply builtins.attrNames | jq -r '.[]'); do 31 + echo "Evaluating $machine..." 32 + if ! nix eval .#nixosConfigurations.$machine.config.system.build.toplevel --raw; then 33 + echo "❌ Failed to evaluate $machine" 34 + failed=1 35 + else 36 + echo "✅ $machine evaluated successfully" 37 + fi 38 + done 39 + exit $failed 40 + 41 + - name: Evaluate all Darwin configurations 42 + run: | 43 + echo "Evaluating Darwin configurations..." 44 + failed=0 45 + for machine in $(nix eval --json .#darwinConfigurations --apply builtins.attrNames 2>/dev/null | jq -r '.[]' 2>/dev/null || echo ""); do 46 + if [ -n "$machine" ]; then 47 + echo "Evaluating $machine..." 48 + if ! nix eval .#darwinConfigurations.$machine.system --raw; then 49 + echo "❌ Failed to evaluate $machine" 50 + failed=1 51 + else 52 + echo "✅ $machine evaluated successfully" 53 + fi 54 + fi 55 + done 56 + exit $failed 57 + 58 + - name: Check formatter 59 + run: | 60 + nix fmt -- --check