Skip to content

Commit 319dc15

Browse files
committed
CI: Nix CI with split build/test and cross-backend jobs
Replace ci.yml with nix-ci.yml, a comprehensive Nix-based CI workflow for self-hosted aarch64-darwin runners using Tart VMs. Architecture: - Build stage: parallel dynamic=0 and dynamic=1 builds, each producing a dist artifact with stage2 compiler + cross-compilation tools - Test stage: runs GHC testsuite against dist artifacts (depends on build) - Cross JS stage: builds JS backend libraries using emscripten/emsdk, smoke tests with `node all.js` - Cross WASM stage: builds WASM backend libraries using wasi-sdk, smoke tests with post-link.mjs + Node.js WASI runtime (see docs/users_guide/wasm.rst and utils/jsffi/post-link.mjs) Key design decisions: - Aggressive disk cleanup between stages (41GB APFS + 28GB WorkSpace partition on runners; GHC builds need ~35GB) - devx shell (input-output-hk/devx#ghc98-minimal-ghc) provides bootstrap GHC 9.8.4 and build tools; exit code propagation requires `set -eo pipefail` in all `shell: devx {0}` steps - GIT_COMMIT_ID env var allows .git removal after checkout (saves ~2GB) - Cross-builds use continue-on-error: true (experimental) - Concurrency group cancels in-progress runs on same branch - ghc-wasm-meta bootstrap for wasi-sdk + wasm32-wasi-ghc installation - emsdk installation for emscripten + JS backend Temporarily disable release workflow while restructuring CI.
1 parent 2fd6333 commit 319dc15

3 files changed

Lines changed: 891 additions & 233 deletions

File tree

.github/workflows/ci.yml

Lines changed: 0 additions & 233 deletions
This file was deleted.

0 commit comments

Comments
 (0)