-
Notifications
You must be signed in to change notification settings - Fork 580
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
e2e: Restructure to reduce number of runners used #5317
e2e: Restructure to reduce number of runners used #5317
Conversation
…ould create a new channel/connection
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## feat/run-full-test-suite-on-each-github-runner #5317 +/- ##
==================================================================================
- Coverage 81.16% 81.02% -0.14%
==================================================================================
Files 199 199
Lines 15278 15313 +35
==================================================================================
+ Hits 12401 12408 +7
- Misses 2408 2435 +27
- Partials 469 470 +1
|
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.
Things are looking great, but the one big thing that needs to be addressed before we can merge this into main is the one relayer per test.
I think what we can do here, is I'll create a feature branch for this, we can merge your PR into that, then we can work on making the changes required for the relayers in a follow up.
Does that work for you?
There is no rush to immediately start working on the relayer issue, it might be a bit of work. Either way, we'll make sure that you are a co-author on the commit when the feature branch gets merged into main!
Could you change the base branch to be feat/run-full-test-suite-on-each-github-runner
?
@@ -0,0 +1,39 @@ | |||
#!/bin/bash |
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 think it may be possible to not need to create a separate script for this, but for now I'm happy to leave this is as is and maybe we can create a follow up issue to look into modifying the existing script without some of this duplication.
t.Run("stop relayer", func(t *testing.T) { | ||
s.StopRelayer(ctx, relayer) | ||
}) |
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'm a little wary of these, if the tests are running in a parallel, stopping the relayer in one test could cause other tests to fail.
Because of this I think we will have to ensure that each test gets its own relayer, and the relayers are only looking at a single channel.
We can do this in a follow up I think, but there may be some flakiness introduced with this.
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 see now that we are not running this test with t.Parallel
which means that we lose the main benefit of running them in a single suite, I think until we can reliably run the tests in parallel (i.e. figure out how to get the relayer watching a single path) we need to be careful with this.
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.
The problem I'm having is creating a new relayer without creating a new chain.
We are in big trouble adding t.Parallel(). I'm thinking of ways and trying to solve it. Thanks @chatton , I find your comments absolutely correct. |
Currently, with each initialization of a relayer instance, we must come with a new pair of chains. Do you have any ideas to fix this? @chatton |
@anhductn2001 once possible solution I can think of is to maintain a map of One thing that might be a problem is if the relayer is configured to watch all channels, we need to make sure that the relayer is configured to only relay packets we care about for the specific test. For hermes this looks like a setting we will want to configure. The default behaviour will not filter any packets and so everything will be relayed. (interfering with other tests). Currently, the relayer has a lot of default configuration options that are specified in interchaintest here It looks like I think the following things need to happen before we can make this work.
The interchaintest modifications I suggested will be the tricker thing to implement as it might end up requiring some non-trivial refactors. |
Could you help me update branch |
Hi @anhductn2001, I tried running tests from |
command: |
|
ah! @anhductn2001 that test specifically has an issue on main and is being worked on, can you try running a different test, maybe the transfer successful case |
Hey y'all wanted to give an update on this. Discussed with @chatton last week and we came up with a couple of steps to actually get this through the finish line. I'll try and add a rough outline of these steps in the parent issue. Wanted to thank y'all for the hard work you've put into this 🥇, it is greatly appreciated. We'll probably re-target this branch to main and base some new work around it. We will make sure each of y'all gets correct attribution when the final commit is merged. |
Thank you @DimitrisJim , sounds good, I'm looking forward to it |
@chatton has pushed a number of awesome improvements building from this.I think I'll close this PR for now. Thanks so much for initial work on this @anhductn2001! ❤️ |
Description
Restructure to run 1 test suite per runner. And we can still run individual tests the way we do now locally.
Implementation the following:
closes: #5062
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
docs/
) or specification (x/<module>/spec/
).godoc
comments.Files changed
in the Github PR explorer.Codecov Report
in the comment section below once CI passes.