-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
rework Github test workflow when splitting core into submodules #10446
Comments
I think we really need module specific CI - the checks that are needed for a given module should only run when that module is changed and then CI should generally be pretty quick. To make this work we probably want to avoid go.mod replace directives when expressing intermodule dependencies and instead always reference some tag. One thing I've noticed in GitHub for required checks is that I think we can use generic names like build, test, etc. and have different actions that satisfy those checks. Not sure if that is clear but basically I think we need to define the required test phases but they can be implemented with slightly different actions per module. |
So currently these are the status checks we require for Let's compare this with what happens in actual checks: Github has some strange rules around how the This has the unpleasant consequence that if we have jobs conditional on what has changed, then some checks won't get triggered and then the PR will be blocked. And it's also too complicated sometimes to manually check off the required status checks correctly when CI is so involved and sometimes changes. Currently, a lot of checks which I think should be required aren't required I think for these reasons (like So I recommend we find a way to:
Probably we can get away with 3 required status checks: |
In #10325 I've added a script which checks if a module should be tested or not. However simple diff check is not enough. We have false negatives, when a module is not in a diff, but it's dependency is in a diff. We should update that script and add dependency checks. |
For |
But if we don't use |
What kind of tags do you have in mind? |
we should reevaluate how integration tests are done, its unclear if we need to spin multiple tendermint instances in ci to test this. We could do a single node in integration tests making us able to get rid of the test-race jobs |
We want |
yea but they are needed cause half of the tests would throw false positives for the race detector. If we got rid of the false positives then we can run everything in race mode |
@marbar3778 are you saying that some tests fail normally but pass with |
this was done in line with sonar cloud being added. Now all modules are tested as their own action |
Summary
Ref: #10325 (comment)
After breaking down the current SDK module setup into submodules, the split-test-files and test jobs in
test.yaml
github workflow doesn't make sense.Problem Definition
Proposal
Rework the workflow to accomodate proper submodule testing
For Admin Use
The text was updated successfully, but these errors were encountered: