|
|
@@ -0,0 +1,95 @@
|
|
|
+name: nix-eval
|
|
|
+
|
|
|
+on:
|
|
|
+ push:
|
|
|
+ branches: [dev]
|
|
|
+ pull_request:
|
|
|
+ branches: [dev]
|
|
|
+ workflow_dispatch:
|
|
|
+
|
|
|
+concurrency:
|
|
|
+ group: ${{ github.workflow }}-${{ github.ref }}
|
|
|
+ cancel-in-progress: true
|
|
|
+
|
|
|
+permissions:
|
|
|
+ contents: read
|
|
|
+
|
|
|
+jobs:
|
|
|
+ nix-eval:
|
|
|
+ runs-on: blacksmith-4vcpu-ubuntu-2404
|
|
|
+ timeout-minutes: 15
|
|
|
+ steps:
|
|
|
+ - name: Checkout repository
|
|
|
+ uses: actions/checkout@v6
|
|
|
+
|
|
|
+ - name: Setup Nix
|
|
|
+ uses: nixbuild/nix-quick-install-action@v34
|
|
|
+
|
|
|
+ - name: Evaluate flake outputs (all systems)
|
|
|
+ run: |
|
|
|
+ set -euo pipefail
|
|
|
+ nix --version
|
|
|
+
|
|
|
+ echo "=== Flake metadata ==="
|
|
|
+ nix flake metadata
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo "=== Flake structure ==="
|
|
|
+ nix flake show --all-systems
|
|
|
+
|
|
|
+ SYSTEMS="x86_64-linux aarch64-linux x86_64-darwin aarch64-darwin"
|
|
|
+ PACKAGES="opencode"
|
|
|
+ # TODO: move 'desktop' to PACKAGES when #11755 is fixed
|
|
|
+ OPTIONAL_PACKAGES="desktop"
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo "=== Evaluating packages for all systems ==="
|
|
|
+ for system in $SYSTEMS; do
|
|
|
+ echo ""
|
|
|
+ echo "--- $system ---"
|
|
|
+ for pkg in $PACKAGES; do
|
|
|
+ printf " %s: " "$pkg"
|
|
|
+ if output=$(nix eval ".#packages.$system.$pkg.drvPath" --raw 2>&1); then
|
|
|
+ echo "✓"
|
|
|
+ else
|
|
|
+ echo "✗"
|
|
|
+ echo "::error::Evaluation failed for packages.$system.$pkg"
|
|
|
+ echo "$output"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ done
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo "=== Evaluating optional packages ==="
|
|
|
+ for system in $SYSTEMS; do
|
|
|
+ echo ""
|
|
|
+ echo "--- $system ---"
|
|
|
+ for pkg in $OPTIONAL_PACKAGES; do
|
|
|
+ printf " %s: " "$pkg"
|
|
|
+ if output=$(nix eval ".#packages.$system.$pkg.drvPath" --raw 2>&1); then
|
|
|
+ echo "✓"
|
|
|
+ else
|
|
|
+ echo "✗"
|
|
|
+ echo "::warning::Evaluation failed for packages.$system.$pkg"
|
|
|
+ echo "$output"
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ done
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo "=== Evaluating devShells for all systems ==="
|
|
|
+ for system in $SYSTEMS; do
|
|
|
+ printf "%s: " "$system"
|
|
|
+ if output=$(nix eval ".#devShells.$system.default.drvPath" --raw 2>&1); then
|
|
|
+ echo "✓"
|
|
|
+ else
|
|
|
+ echo "✗"
|
|
|
+ echo "::error::Evaluation failed for devShells.$system.default"
|
|
|
+ echo "$output"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+ done
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo "=== All evaluations passed ==="
|