@@ -143,6 +143,7 @@ jobs:
143143 has_tron : ${{ steps.decide.outputs.has_tron }}
144144 has_relayer : ${{ steps.decide.outputs.has_relayer }}
145145 has_rebalancer : ${{ steps.decide.outputs.has_rebalancer }}
146+ has_svm : ${{ steps.decide.outputs.has_svm }}
146147 runs-on : ubuntu-latest
147148 steps :
148149 - uses : actions/checkout@v6
@@ -181,6 +182,7 @@ jobs:
181182 echo "has_tron=true" >> $GITHUB_OUTPUT
182183 echo "has_relayer=true" >> $GITHUB_OUTPUT
183184 echo "has_rebalancer=true" >> $GITHUB_OUTPUT
185+ echo "has_svm=true" >> $GITHUB_OUTPUT
184186 exit 0
185187 fi
186188
@@ -192,6 +194,7 @@ jobs:
192194 echo "has_tron=false" >> $GITHUB_OUTPUT
193195 echo "has_relayer=false" >> $GITHUB_OUTPUT
194196 echo "has_rebalancer=false" >> $GITHUB_OUTPUT
197+ echo "has_svm=false" >> $GITHUB_OUTPUT
195198 exit 0
196199 fi
197200
@@ -200,6 +203,7 @@ jobs:
200203 has_aleo=$(echo "$CHANGED_FILES" | grep -qE '^typescript/aleo-sdk/' && echo true || echo false)
201204 has_cosmos=$(echo "$CHANGED_FILES" | grep -qE '^typescript/(cosmos-sdk|cosmos-types)/' && echo true || echo false)
202205 has_tron=$(echo "$CHANGED_FILES" | grep -qE '^typescript/tron-sdk/' && echo true || echo false)
206+ has_svm=$(echo "$CHANGED_FILES" | grep -qE '^(rust/sealevel/|typescript/svm-sdk/)' && echo true || echo false)
203207
204208 # Package-specific changes (run only their targeted CLI e2e tests)
205209 has_relayer=$(echo "$CHANGED_FILES" | grep -qE '^typescript/relayer/' && echo true || echo false)
@@ -222,6 +226,9 @@ jobs:
222226 echo "CLI changes: $has_cli_changes"
223227 echo "VM-specific — radix=$has_radix aleo=$has_aleo cosmos=$has_cosmos tron=$has_tron"
224228 echo "Package-specific — relayer=$has_relayer rebalancer=$has_rebalancer"
229+ echo "has_svm=$has_svm" >> $GITHUB_OUTPUT
230+
231+ echo "VM-specific — radix=$has_radix aleo=$has_aleo cosmos=$has_cosmos tron=$has_tron svm=$has_svm"
225232
226233 - name : Decide what to run
227234 id : decide
@@ -244,6 +251,7 @@ jobs:
244251 echo "has_tron=false" >> $GITHUB_OUTPUT
245252 echo "has_relayer=false" >> $GITHUB_OUTPUT
246253 echo "has_rebalancer=false" >> $GITHUB_OUTPUT
254+ echo "has_svm=false" >> $GITHUB_OUTPUT
247255 exit 0
248256 fi
249257
@@ -257,6 +265,7 @@ jobs:
257265 echo "has_tron=true" >> $GITHUB_OUTPUT
258266 echo "has_relayer=true" >> $GITHUB_OUTPUT
259267 echo "has_rebalancer=true" >> $GITHUB_OUTPUT
268+ echo "has_svm=true" >> $GITHUB_OUTPUT
260269 exit 0
261270 fi
262271
@@ -269,6 +278,7 @@ jobs:
269278 echo "has_tron=${{ steps.check-vm.outputs.has_tron }}" >> $GITHUB_OUTPUT
270279 echo "has_relayer=${{ steps.check-vm.outputs.has_relayer }}" >> $GITHUB_OUTPUT
271280 echo "has_rebalancer=${{ steps.check-vm.outputs.has_rebalancer }}" >> $GITHUB_OUTPUT
281+ echo "has_svm=${{ steps.check-vm.outputs.has_svm }}" >> $GITHUB_OUTPUT
272282
273283 pnpm-test-run :
274284 runs-on : depot-ubuntu-24.04
@@ -478,6 +488,22 @@ jobs:
478488 exit 1
479489 fi
480490
491+ svm-program-bytes :
492+ runs-on : ubuntu-latest
493+ needs : [change-detection]
494+ if : needs.change-detection.outputs.has_svm == 'true'
495+ steps :
496+ - uses : actions/checkout@v6
497+ with :
498+ ref : ${{ github.event.pull_request.head.sha || github.sha }}
499+
500+ - uses : actions/setup-node@v6
501+ with :
502+ node-version-file : .nvmrc
503+
504+ - name : Check program-bytes.ts staleness
505+ run : node typescript/svm-sdk/scripts/check-program-bytes-hash.mjs
506+
481507 env-tests :
482508 needs : [change-detection]
483509 uses : ./.github/workflows/test-env.yml
0 commit comments