ci: add parser_cli to StageX build matrix#232
Closed
shahan-khatchadourian-anchorage wants to merge 14 commits into
Closed
ci: add parser_cli to StageX build matrix#232shahan-khatchadourian-anchorage wants to merge 14 commits into
shahan-khatchadourian-anchorage wants to merge 14 commits into
Conversation
Move proptest and fuzz jobs out of main.yml into dedicated workflow files (proptest.yml, fuzz.yml) so they appear as distinct named checks. Add pull-requests: write permission to fuzz job to allow posting crash comments via gh pr comment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Shared composite action posts crash/failure output as a PR comment and tags @copilot to fix the issue. Fuzz and proptest workflows use it via extract steps that write output to GITHUB_OUTPUT. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add 'labeled' to pull_request trigger types and allow the ubuntu job to run when the 'ci' label is present, not just for PRs targeting main. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Pin fuzz Cargo.lock to avoid spl-token-2022 breakage on nightly (spl-token-group-interface 0.7.2 pulled in solana-nullable which is incompatible with spl-token-2022 10.0.0) - Remove stale Cargo.lock gitignore rule from visualsign-solana - Remove post-failure-comment action and simplify fuzz/proptest workflows - Use continue-on-error on fuzz steps so crashes show as warnings (known pre-existing panics in instructions.rs bounds checking) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
On crash/failure, add fuzz-failure or proptest-failure label to the PR. On clean run, remove the label. This gives visible signal without blocking the check. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add || true to --add-label calls so the step doesn't fail if the label operation itself has issues (e.g. label not yet created in the repo). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Pin nightly toolchain to 2026-03-13 (known-good) in both rust-toolchain.toml and fuzz.yml - Use --locked for cargo install cargo-fuzz in CI and docs - Cache fuzz/target/ and key off fuzz/Cargo.lock instead of src/Cargo.lock Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Use ..VisualSignOptions::default() in test helpers to prevent breakage when new fields are added to the struct - Pass github.event.pull_request.number through env var instead of direct context interpolation in shell blocks Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extract load_idl_from_env into common/mod.rs and add real_idl_validation.rs with deterministic structural invariant tests for production IDLs: discriminator presence/uniqueness, instruction name uniqueness, and IDL hash stability. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ightly env var - Rename fuzz.yml -> fuzz-solana.yml and proptest.yml -> proptest-solana.yml with chain-scoped workflow names for future multi-chain CI - Extract nightly toolchain version to NIGHTLY_VERSION env var in fuzz workflow - Pin rust-toolchain.toml to 1.88.0 to match StageX pallet-rust:1.88.0 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Containerfile for parser_cli (Solana-only) with cargo test before build. Tests run first to fail fast and warm the compilation cache. Add Makefile target and stagex.yml matrix entry. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot started reviewing on behalf of
shahan-khatchadourian-anchorage
April 10, 2026 14:17
View session
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a Solana-only parser_cli image to the StageX CI build matrix and introduces deterministic “real IDL” structural validation tests for the Solana parser test suite.
Changes:
- Add
images/parser_cli/Containerfileand a correspondingMakefiletarget to build a Solana-onlyparser_cliimage via StageX (runscargo testbeforecargo build). - Add
real_idl_validation.rsand extractload_idl_from_envintotests/common/mod.rsfor reuse across Solana tests. - Update CI workflows: include
parser_cliin.github/workflows/stagex.ymlmatrix and clarify Solana-specific workflow names / nightly pin usage.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/rust-toolchain.toml | Pins Rust toolchain patch version to align with StageX base images. |
| src/chain_parsers/visualsign-solana/tests/real_idl_validation.rs | New deterministic structural invariant tests for decoded real IDLs. |
| src/chain_parsers/visualsign-solana/tests/fuzz_idl_parsing.rs | Reuses shared load_idl_from_env helper from tests/common. |
| src/chain_parsers/visualsign-solana/tests/common/mod.rs | Adds shared load_idl_from_env helper for real-IDL-based tests. |
| Makefile | Adds out/parser_cli/index.json build target for StageX pipeline. |
| images/parser_cli/Containerfile | New StageX container build for parser_cli (Solana-only) with test-before-build. |
| .github/workflows/stagex.yml | Adds parser_cli to build matrix and improves job naming. |
| .github/workflows/proptest-solana.yml | Renames workflow to be Solana-specific. |
| .github/workflows/fuzz-solana.yml | Renames workflow and centralizes pinned nightly via NIGHTLY_VERSION. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…criminators - Use imported `Idl` type alias instead of fully-qualified path - Update doc comment to note decode failures are logged, not silent - Require discriminators on all instructions in uniqueness test Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Incorporates changes from PR #226: - stagex.yml: PR builds require `stagex` label instead of auto-triggering on path changes. GHCR login moved after build step. - main.yml: disable setup-rust-toolchain built-in cache which fails because Cargo.toml is in src/, not repo root. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4 tasks
shahan-khatchadourian-anchorage
added a commit
that referenced
this pull request
Apr 11, 2026
- Add images/parser_cli/Containerfile for Solana-only CLI build - Add parser_cli target to Makefile and stagex.yml matrix - stagex.yml: PR builds require `stagex` label instead of auto-triggering on path changes; GHCR login moved after build - main.yml: disable setup-rust-toolchain built-in cache (Cargo.toml is in src/, not repo root) Incorporates PR #226 (now closed). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Rebased cleanly onto current main as a single commit. Superseded by new PR from |
4 tasks
shahan-khatchadourian-anchorage
added a commit
that referenced
this pull request
Apr 13, 2026
## Summary - Add `images/parser_cli/Containerfile` for Solana-only CLI build using StageX - Add `parser_cli` target to `Makefile` and `stagex.yml` matrix - **Incorporates PR #226**: stagex PR builds now require the `stagex` label instead of auto-triggering on path changes; GHCR login moved after build; disable setup-rust-toolchain built-in cache in main.yml Replaces #232 (rebased). Stacked on #224. ## Test plan - [ ] StageX build passes for `parser_cli` in CI (add `stagex` label to trigger) - [ ] Existing `parser_app` and `parser_gateway` builds unaffected - [ ] Push to main with relevant path changes still triggers the build - [ ] GHCR push still works on push to main 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
images/parser_cli/Containerfilefor Solana-only CLI build using StageXcargo testbeforecargo buildto fail fast and warm the compilation cacheparser_clitarget toMakefileandstagex.ymlmatrixstagexlabel instead of auto-triggering on path changes; GHCR login moved after build; disable setup-rust-toolchain built-in cache in main.ymlStacked on #224.
Test plan
parser_cliin CI (addstagexlabel to trigger)parser_appandparser_gatewaybuilds unaffectedContinuous Integrationno longer showsCargo.tomlnot found errors🤖 Generated with Claude Code