Skip to content

Commit e90f11f

Browse files
author
Edward (Mike's sidekick)
committed
ci: pin solana-cli-version to 3.1.10 in all workflows
heyAyushh/setup-solana@v5.9 (used directly in native/pinocchio/quasar and transitively via heyAyushh/setup-anchor@v4.999 in anchor.yml) has an intermittently broken 'stable' resolver. When the upstream STABLE_CHANNEL_LATEST_TAG env var is unset/empty in a given run, the action logs 'Using Solana CLI version ' (no version) and then curls https://release.anza.xyz/v/install, which returns HTTP 404 and fails the job. Recent main-branch CI run 25696483414 (Anchor) is a concrete example. The action is already at its latest tag (v4.999 / v5.9 follow a non-standard '4.99X / 5.X' floating-tag scheme where higher = newer) and the maintainer's most recent commit message is literally 'bumped action because of solana stable' — i.e. upstream is aware of the brittleness but consumers still get 'stable' as the de facto default. Pinning a concrete version is the only defensive answer available to us. 3.1.10 is the Solana CLI version recommended by Anchor 1.0.0's release notes and pinned by Anchor's own CI from 1.0.0-rc.5 onward (see the Anchor CHANGELOG). It is also compatible with our anchor-version: 1.0.0 pin. The non-anchor frameworks are pinned to the same value to keep the CI matrix consistent. The 'beta' steps in native.yml and pinocchio.yml are intentionally left floating: they are the channel-tracking jobs and are already marked continue-on-error with a comment explaining the upstream beta 404 behaviour. A separate issue will be filed upstream at heyAyushh/setup-solana documenting the empty-version resolver bug. Bump in lockstep with anchor-version when upgrading Anchor.
1 parent 68fa7ea commit e90f11f

4 files changed

Lines changed: 35 additions & 4 deletions

File tree

.github/workflows/anchor.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,14 @@ jobs:
138138
- uses: heyAyushh/setup-anchor@v4.999
139139
with:
140140
anchor-version: 1.0.0
141-
solana-cli-version: stable
141+
# Pinned to 3.1.10 (not `stable`) because heyAyushh/setup-anchor's
142+
# `stable` resolver intermittently returns an empty version string,
143+
# which makes the action curl https://release.anza.xyz/v/install and
144+
# 404. 3.1.10 is the version recommended by Anchor 1.0.0's release
145+
# notes and pinned by Anchor's own CI in 1.0.0-rc.5+. Bump in lockstep
146+
# with anchor-version above. See upstream issue tracking the brittle
147+
# `stable` behaviour.
148+
solana-cli-version: 3.1.10
142149
- name: Install Surfpool
143150
run: curl -sL https://run.surfpool.run/ | bash
144151
- name: Display Versions

.github/workflows/native.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,16 @@ jobs:
222222
- name: Setup Solana Stable
223223
uses: heyAyushh/setup-solana@v5.9
224224
with:
225-
solana-cli-version: stable
225+
# Pinned to 3.1.10 (not `stable`) because heyAyushh/setup-solana's
226+
# `stable` resolver intermittently returns an empty version string,
227+
# which makes the action curl https://release.anza.xyz/v/install and
228+
# 404. 3.1.10 is the version recommended by Anchor 1.0.0's release
229+
# notes; we use it here too to keep the matrix consistent across
230+
# frameworks. The `beta` step below intentionally stays floating —
231+
# it's the channel-tracking job and is already marked
232+
# continue-on-error. See upstream issue tracking the brittle `stable`
233+
# behaviour.
234+
solana-cli-version: 3.1.10
226235
- name: Build and Test with Stable
227236
run: |
228237
source build_and_test.sh

.github/workflows/pinocchio.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,16 @@ jobs:
222222
- name: Setup Solana Stable
223223
uses: heyAyushh/setup-solana@v5.9
224224
with:
225-
solana-cli-version: stable
225+
# Pinned to 3.1.10 (not `stable`) because heyAyushh/setup-solana's
226+
# `stable` resolver intermittently returns an empty version string,
227+
# which makes the action curl https://release.anza.xyz/v/install and
228+
# 404. 3.1.10 is the version recommended by Anchor 1.0.0's release
229+
# notes; we use it here too to keep the matrix consistent across
230+
# frameworks. The `beta` step below intentionally stays floating —
231+
# it's the channel-tracking job and is already marked
232+
# continue-on-error. See upstream issue tracking the brittle `stable`
233+
# behaviour.
234+
solana-cli-version: 3.1.10
226235
- name: Build and Test with Stable
227236
run: |
228237
source build_and_test.sh

.github/workflows/quasar.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,13 @@ jobs:
197197
- name: Setup Solana Stable
198198
uses: heyAyushh/setup-solana@v5.9
199199
with:
200-
solana-cli-version: stable
200+
# Pinned to 3.1.10 (not `stable`) because heyAyushh/setup-solana's
201+
# `stable` resolver intermittently returns an empty version string,
202+
# which makes the action curl https://release.anza.xyz/v/install and
203+
# 404. 3.1.10 is the version recommended by Anchor 1.0.0's release
204+
# notes; using it here keeps the matrix consistent across frameworks.
205+
# See upstream issue tracking the brittle `stable` behaviour.
206+
solana-cli-version: 3.1.10
201207
- name: Install Quasar CLI
202208
# Pinned to quasar rev 3d6fb0d8 (the HEAD this migration was written
203209
# against, immediately after PRs #195 + #196). The next merged PR

0 commit comments

Comments
 (0)