Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support E2E Software Upgrade Tests #1908

Closed
Tracked by #1779
chatton opened this issue Aug 8, 2022 · 5 comments
Closed
Tracked by #1779

Support E2E Software Upgrade Tests #1908

chatton opened this issue Aug 8, 2022 · 5 comments
Assignees
Labels
Milestone

Comments

@chatton
Copy link
Contributor

chatton commented Aug 8, 2022

We should be able to ensure that we can upgrade from the latest release of a release branch to the code of a an arbitrary branch/PR/release candidate and ensure that nothing breaks in doing so.

We can achieve this with the following steps.

  • Add a manually triggerable workflow (workflow_dispatch) to the main branch that does the following
  • Determine the latest release in for that branch.
    We could determine this by doing something like this from a workflow.
     VERSION="3.1"
     git tag -l | grep "v${VERSION}" | sort -V | tail -n 1
     # v3.1.1
  • Specify a new environment variable for the tests, UPGRADE_FROM or similar to provide this version to the tests.
  • Perform an automated upgrade from that version, to an image built from the current code. And run our test suite.
    This should effectively perform follow the steps outlined here but use the ibctest framework to broadcast messages instead of using cli commands directly.
  • Perform any post upgrade checks to verify that the upgrade was successful. The previous test can be generalized and run only if the before and after versions differ. This way we can turn any existing test into an upgrade test.

Note: The test code will stay in the main branch, the workflow will pull tags that have been built and pushed from tasks that ran during the release process of the other release branches. This way all the test code lives in one place. We can specify which tests should run on which given release if required.

@chatton chatton mentioned this issue Aug 8, 2022
7 tasks
@chatton chatton changed the title Create an Upgrade Test Support Upgrade Tests Aug 8, 2022
@chatton chatton changed the title Support Upgrade Tests Support E2E Upgrade Tests Aug 8, 2022
@chatton chatton self-assigned this Aug 8, 2022
@chatton chatton removed their assignment Aug 15, 2022
@colin-axner
Copy link
Contributor

We should setup a conventional way to test state persistence/migrations as part of this issue, but first I'd like to just see a test go from one major version to the next

@colin-axner colin-axner changed the title Support E2E Upgrade Tests Support E2E Software Upgrade Tests Aug 25, 2022
@colin-axner
Copy link
Contributor

@chatton chatton self-assigned this Aug 29, 2022
@colin-axner colin-axner added this to the v5.1.0 milestone Aug 29, 2022
@colin-axner colin-axner moved this to In review in ibc-go Aug 31, 2022
@colin-axner
Copy link
Contributor

I guess the new action item is ensuring there's a test for v5 -> v6?

@chatton
Copy link
Contributor Author

chatton commented Sep 28, 2022

@colin-axner right this issue's scope is maybe ever expanding. Maybe we can close this issue as we have an upgrade test that we can run. We can create issues for individual upgrade cases we want to handle. WDYT?

Repository owner moved this from In review to Done in ibc-go Sep 29, 2022
@colin-axner
Copy link
Contributor

#2188 can be used for v5 -> v6 upgrades

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

No branches or pull requests

2 participants