summaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
authorJérôme Benoit <[email protected]>2026-02-18 07:03:37 +0100
committerGitHub <[email protected]>2026-02-18 00:03:37 -0600
commit1109a282e0070a8743243f614240526df38afcdd (patch)
tree3911848ff80af633e496e77e36b2de22cdd8697a /.github
parent25f3eef9570267d3368a74556a830ca62be0f231 (diff)
downloadopencode-1109a282e0070a8743243f614240526df38afcdd.tar.gz
opencode-1109a282e0070a8743243f614240526df38afcdd.zip
ci: add nix-eval workflow for cross-platform flake evaluation (#12175)
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/nix-desktop.yml.disabled46
-rw-r--r--.github/workflows/nix-eval.yml95
2 files changed, 95 insertions, 46 deletions
diff --git a/.github/workflows/nix-desktop.yml.disabled b/.github/workflows/nix-desktop.yml.disabled
deleted file mode 100644
index 031eff6a6..000000000
--- a/.github/workflows/nix-desktop.yml.disabled
+++ /dev/null
@@ -1,46 +0,0 @@
-name: nix-desktop
-
-on:
- push:
- branches: [dev]
- paths:
- - "flake.nix"
- - "flake.lock"
- - "nix/**"
- - "packages/app/**"
- - "packages/desktop/**"
- - ".github/workflows/nix-desktop.yml"
- pull_request:
- paths:
- - "flake.nix"
- - "flake.lock"
- - "nix/**"
- - "packages/app/**"
- - "packages/desktop/**"
- - ".github/workflows/nix-desktop.yml"
- workflow_dispatch:
-
-jobs:
- nix-desktop:
- strategy:
- fail-fast: false
- matrix:
- os:
- - blacksmith-4vcpu-ubuntu-2404
- - blacksmith-4vcpu-ubuntu-2404-arm
- - macos-15-intel
- - macos-latest
- runs-on: ${{ matrix.os }}
- timeout-minutes: 60
- steps:
- - name: Checkout repository
- uses: actions/checkout@v6
-
- - name: Setup Nix
- uses: nixbuild/nix-quick-install-action@v34
-
- - name: Build desktop via flake
- run: |
- set -euo pipefail
- nix --version
- nix build .#desktop -L
diff --git a/.github/workflows/nix-eval.yml b/.github/workflows/nix-eval.yml
new file mode 100644
index 000000000..c76b2c972
--- /dev/null
+++ b/.github/workflows/nix-eval.yml
@@ -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 ==="