Skip to content

Commit 3607ee6

Browse files
authored
feat(ci): run aztec-cli acceptance test on macOS (#23309)
## Summary - Adds `macos-latest` to the `aztec-cli-acceptance-test` workflow via `strategy.matrix` so the full dev onboarding test runs on both Ubuntu and macOS in parallel, with `fail-fast: false` so one OS failure doesn't cancel the other. - Splits Slack notifications into a downstream `notify` job (`needs: release-acceptance` + `always()`) so a single consolidated message fires after both matrix entries finish. - Moves all Node setup into `run-test.sh`: it now installs NVM if missing and `nvm install --lts` unconditionally, then `aztec-up`'s `install_node` can upgrade further via the same NVM if needed. This makes the runner self-contained and unblocks macOS, where the GitHub Actions image ships without NVM (the previous `setup-node` step put Node 22 in PATH but left `aztec-up` with no way to satisfy its `>=24.12.0` requirement). Fixes F-566
1 parent 941cb6b commit 3607ee6

2 files changed

Lines changed: 29 additions & 16 deletions

File tree

.github/workflows/aztec-cli-acceptance-test.yml

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ on:
1818

1919
jobs:
2020
release-acceptance:
21-
runs-on: ubuntu-latest
21+
strategy:
22+
fail-fast: false # Don't cancel the other OS if one fails.
23+
matrix:
24+
os: [ubuntu-latest, macos-latest]
25+
runs-on: ${{ matrix.os }}
2226
if: >-
2327
github.event_name == 'workflow_dispatch' ||
2428
(github.event_name == 'workflow_run'
@@ -32,19 +36,24 @@ jobs:
3236
with:
3337
ref: ${{ github.event.workflow_run.head_sha || github.sha }}
3438

35-
# Node is only used to run the .ts harness in run-test.sh, which needs >=22.18 for TS
36-
# type-stripping. The aztec CLI installer manages its own node version independently.
37-
- name: Setup Node.js
38-
uses: actions/setup-node@v4
39-
with:
40-
node-version: 22
41-
4239
- name: Run Aztec CLI acceptance test
4340
timeout-minutes: 30
4441
run: ./aztec-up/test/aztec-cli-acceptance-test/run-test.sh
4542

43+
notify:
44+
needs: release-acceptance
45+
if: always() && github.event_name != 'workflow_dispatch'
46+
runs-on: ubuntu-latest
47+
env:
48+
VERSION: ${{ github.event.inputs.version || github.event.workflow_run.head_branch }}
49+
steps:
50+
- name: Checkout
51+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
52+
with:
53+
ref: ${{ github.event.workflow_run.head_sha || github.sha }}
54+
4655
- name: Notify Slack on success
47-
if: success() && github.event_name != 'workflow_dispatch'
56+
if: needs.release-acceptance.result == 'success'
4857
env:
4958
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
5059
run: |
@@ -54,7 +63,7 @@ jobs:
5463
"#team-fairies"
5564
5665
- name: Notify Slack and dispatch ClaudeBox on failure
57-
if: failure() && github.event_name != 'workflow_dispatch'
66+
if: needs.release-acceptance.result == 'failure'
5867
env:
5968
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
6069
GITHUB_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}

aztec-up/test/aztec-cli-acceptance-test/run-test.sh

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
# Launcher for the Aztec CLI acceptance test.
33
#
44
# Steps:
5-
# 1. Install Node via NVM if not present (skipped with SKIP_INSTALL=1)
5+
# 1. Install NVM and the latest LTS Node (skipped with SKIP_INSTALL=1). NVM is required by the
6+
# aztec installer to upgrade Node when the system version is too old.
67
# 2. Install the Aztec toolchain via the public installer (skipped with SKIP_INSTALL=1)
78
# 3. Run aztec-cli-acceptance-test.ts which exercises the installed toolchain end-to-end
89
#
@@ -20,14 +21,17 @@ else
2021
echo "ERROR: VERSION must be set when SKIP_INSTALL is not 1." >&2
2122
exit 1
2223
fi
23-
if ! command -v node &>/dev/null; then
24-
echo ">>> Installing Node via NVM"
24+
if [ ! -f "$HOME/.nvm/nvm.sh" ]; then
25+
echo ">>> Installing NVM"
2526
curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh -o /tmp/nvm-install.sh
2627
PROFILE=/dev/null bash /tmp/nvm-install.sh
27-
export NVM_DIR="$HOME/.nvm"
28-
set +eu; . "$NVM_DIR/nvm.sh"; set -eu
29-
nvm install --lts
3028
fi
29+
30+
# Install latest LTS node, since we need it to run the acceptance test correctly
31+
export NVM_DIR="$HOME/.nvm"
32+
set +eu; . "$NVM_DIR/nvm.sh"; set -eu
33+
echo ">>> Installing latest LTS Node via NVM"
34+
nvm install --lts
3135
echo ">>> Installing aztec ${VERSION}"
3236
NO_NEW_SHELL=1 VERSION="${VERSION}" bash <(curl -sL https://install.aztec.network)
3337
fi

0 commit comments

Comments
 (0)