| 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd |
|
|
| - name: Setup Nix |
| uses: nixbuild/nix-quick-install-action@2c9db80fb984ceb1bcaa77cdda3fdf8cfba92035 |
|
|
| - 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" |
| |
| 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 ===" |
|
|