snarkOS icon indicating copy to clipboard operation
snarkOS copied to clipboard

Upgrade nodes in CI tests

Open meddle0x53 opened this issue 1 month ago • 3 comments

Motivation

To test upgrading snarkos versions in a network we run a special denvet test as described in #4026

Test Plan

Run the CI and the new test passes.

Documentation

The test works following the steps:

  1. Download latest snarkOS release source from GitHub.
  2. Build it via cargo install --locked --path . --features test_network into a separate prefix (SNARKOS_RELEASE_DIR).
  3. Probe latest_consensus_version for release and PR binaries.
  4. Compute CONSENSUS_VERSION_HEIGHTS for release and PR.
  5. Rebuild release snarkOS with its heights.
  6. Rebuild PR snarkOS with its heights.
  7. Start a devnet with the release binary.
  8. Restart nodes one-by-one to the PR binary.

Added a new workflow for the new test, extracting it from the devnet tests, as it is time-taking with all the compilations and waiting on the consensus version.

meddle0x53 avatar Nov 28 '25 09:11 meddle0x53

Looks good to me! I pushed one more commit with some minor cleanups (83355c6).

I also rebased https://github.com/ProvableHQ/snarkOS/pull/3902 on it. That PR has some networking changes and the tests succeed. We might still want to test it with a branch that has breaking changes to see that those are caught, or did you do that already?

Also, a side note, it would be great if we could keep the number of commits in PRs to a manageable amount. This one has 14 commits, for ~700 LOC. It's not a huge deal, but it can be a pain when reading the commit logs and or when using git bisect.

kaimast avatar Dec 10 '25 21:12 kaimast

@kaimast @vicsn Squashed all into one commit now.

meddle0x53 avatar Dec 11 '25 08:12 meddle0x53

@kaimast good idea. You want to give it another go with a toy PR which changes the gateway handshake in a breaking way?

vicsn avatar Dec 11 '25 20:12 vicsn