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