Skip to content

test: add a CI job that runs make update-abi-snapshots and fails if regenerated files differ from committed abis/ #495

Description

Description

This may overlap with ci-abi-metadata.yml/ci-abi-snapshots.yml, but if those workflows check ABI metadata format rather than actually regenerating and diffing, adding an explicit regenerate-and-diff job would give a stronger correctness guarantee that abis/*.json truly reflects current contract source.

This is part of the CI/CD configuration under .github/workflows/, the automated gate that enforces every other guarantee this project claims to have, from ABI/contract consistency to documentation linting to coverage reporting. CONTRIBUTING.md lists specific required status checks that every PR must pass before merging, which means a gap in CI configuration doesn't just fail to catch a class of bug, it actively lets that class of bug merge to main with a green checkmark that reviewers reasonably trust.

Because CI is the one piece of the project every single contributor interacts with on every single PR, inefficiencies or blind spots here have an outsized multiplier effect: a slow or overly broad workflow wastes a small amount of time on every PR forever, and a missing check is a permanently open door for exactly the class of regression it should have caught.

Requirements and context

  • Confirm existing ABI CI jobs regenerate-and-diff rather than schema-check only; add the stronger check if missing

Suggested execution

  1. Fork the repo and create a branch
    git checkout -b test/ci-abi-regenerate-diff-check
    
  2. Implement changes
  • Update .github/workflows/ci-abi-snapshots.yml or add a new job
  1. Test and commit
  • Deliberately edit a contract without updating abis/ on a test branch and confirm CI fails

Example commit message

test: add regenerate-and-diff enforcement to ABI snapshot CI

Guidelines

  • Assignment required before starting
  • PR description must include: Closes #[issue_id]
  • Keep PR description professional and detailed

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave program

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions