-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Upgrade Downgrade Testing #9300
Conversation
f2a8e9b
to
b594d1e
Compare
ed77e34
to
d1e5a79
Compare
16c4890
to
d581595
Compare
0880b7f
to
bfda858
Compare
bfda858
to
af77210
Compare
a9c149d
to
bae397e
Compare
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
2029769
to
da0da16
Compare
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
b381288
to
69276be
Compare
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
72255ec
to
f4ba5ec
Compare
In general, opt-in CI is not a good idea. PR authors may not realize that they are making a change that can break upgrade/downgrade. |
@@ -748,7 +748,7 @@ | |||
"Manual": false, | |||
"Shard": "vtgate_schema_tracker", | |||
"RetryMax": 1, | |||
"Tags": [] | |||
"Tags": ["upgrade_downgrade_query_serving"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it expected that there will be more tags of this kind?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am expecting to have at least two more, one for backups and one for cluster management
I think that the opt-in CI would be useful, in the sense that for smaller PRs or for PRs which do not require running the upgrade downgrade testing, we can avoid doing so. But this would mean that it is the responsibility of the maintainer merging the PR to add the label and run this CI before merging if deemed necessary and not already present |
@deepthi @GuptaManan100 How about an opt-out CI strategy? With the query serving's upgrade downgrade testing workflow taking approximately an hour, I can see the case where we want to skip the workflow. |
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
I think an opt-out strategy might be okay. For the PRs which we don't want to run them, then we can specifically prevent running them |
…able it Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Description
This pull request introduces a more comprehensive upgrade/downgrade test strategy in order to comply with VEP-3. The new strategy is thoroughly discussed in #7344 (specifically in this comment: #7344 (comment)).
This pull request focuses on testing the
query serving
part of Vitess. Thebackup
andcluster management
parts will follow the same approach as the one introduced by this pull request.The methodology used to perform the upgrade downgrade test is the following:
n
(the current commit) andn-1
(the latest major release)n_bin
andn-1_bin
directory, so we can reuse them laterbin
directory with all the binaries that our test will usen
in thebin
directoryn
n-1
now. Copy thevtgate
binary from then-1_bin
we created earlier into thebin
directoryn-1
and vttablet using versionn
n
and vttablet versionn-1
. Use the binaries stored in then_bin
andn-1_bin
directories.n
and vttablet using versionn-1
This methodology is similar to the one detailed in @deepthi's comment, but instead of creating a global cluster, we use the already-existing end-to-end tests.
The tests ran in this new workflow are defined using the
config.json
file. All the tests in this file that are tagged withupgrade_downgrade_query_serving
will automatically be tested by the new workflow. Example below:Trigger upgrade downgrade testing
The label
Upgrade Downgrade
enables the run of the workflow. Without the label on your pull request, the workflow will not run. This is done to limit the number of long and not-always-necessary workflows.cc @deepthi @GuptaManan100 ; What do you think about this label check?
Checklist