-
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
Improving CI/CD test coverage #4989
Comments
I like it! I just have one suggestion: under regression testing, we should test all MySQL flavors and versions Vitess claims to support. |
Oh that's a great idea. Just added that! |
This is great. I think we should also add release tagging as a part of the production readiness cadence. |
If everyone is okay with it, I would like to take a look at this after I've finished the release cycle documentation + small documentation refactoring tasks I'm working on (~1-2 weeks time) |
@morgo yes! I think that makes sense. I see the release cycle/doc as a pre-req for the improvements in this issue. |
I am going to look at Circle CI & AWS Code Build in scope as well. @dkhenry suggested that if we parallelize the tests more we can run the regression suite on every commit (versus nightly). That makes sense to me. We can revert the plan to nightly if the cost/time is prohibitive. |
I am planning to loop back on this. I just want to merge a couple of PRs that change the build/testing environment:
Work is also underway to remove python from the tests. @arindamnayak, @ajeetj and @saurabh408 are all working on it :-) What I plan to do is first move |
@GuptaManan100 I am willing to work on this project. The way I understand, there are 2 tasks.
Is there anything that needs to be known to better understand the project? |
The mentor for this project is going to be @harshit-gangal. He will be best able to answer your queries. |
The Vitess Test Suite runs on Github Actions today, there is no Travis CI anymore. |
@harshit-gangal Great! :) |
This might help: #7344 |
Okay so I went through #7344, and observed that only 2 of the scenarios still remains to be tested
Also, it mentions that there needs to be some more explicit testing for vtgate and vtctld in the end-to-end tests itself. |
Expanding Vitess Test Coverage
Currently Vitess has a rich set of functional tests that are run as part of every commit to catch regressions early. However, they are not sufficient to assess the quality of the product for production rollout.
Some of the problems with the current approach are:
Proposed Testing environments:
Continuous Integration
Frequency: For every commit
Scope: Unit tests and most functionality/integration testing
Currently most tests are run in Travis CI. As tests are converted to Golang, we will move them to use GitHub Actions.
Known Tasks:
We will try and run as many tests in the Continuous Integration suite as possible. GitHub actions allow 20 concurrent tests to be run, we may be able to upgrade for more.
Upgrade/Downgrade Testing
Frequency: Nightly
Scope: Reliability, Backward/Forward compatibility
We currently do not test for incompatibilities introduced via upgrade, and ensuring that users can downgrade one level if they need to backout of a failed upgrade. The scenarios will need to be written down, and then tests can be written using GitHub actions:
Production Readiness
Frequency: Pick a new build every 2 weeks
Scope: Performance, Stress
Longer term we should track regressions in performance as part of automated testing. I suggest we scope this out after we have started upgrade/downgrade tests, as we might learn which scenarios we would like to test against. I am a bit nervous of skew, since as well as being virtualized, there are no promises of exactly what hardware GitHub actions is providing. We may be best served by using physical hardware.
The text was updated successfully, but these errors were encountered: