feat: set up very expensive tests to run in CI#12939
Conversation
18a97fb to
8efd0e7
Compare
8efd0e7 to
f204a6a
Compare
ef83f34 to
78a75b9
Compare
|
Looking at the bad test: At the peak, only about 700 epochs in, which is where the test is getting killed (quite early, this isn't timeout related) we get to ~32GiB of RAM, so I assume this is the limitation we're dealing with for these runners? It goes down from there, this is the initial part where it's generating the initial proof so it's a lot of work. There's only this one case that's in un here and it's the |
|
btw once we get into it, it goes way down: but it does take a long time to run this test because of the amount of time needed to tick through all the epochs required. In my test run it's got up to 15,478 epochs 556.76s; on a fairly fast system. |
|
@galargh : apologies for the delay here. A few things: For getting the current In terms of the interaction model:
|
a224569 to
f956c13
Compare
f956c13 to
44730b1
Compare
d5fb5dd to
81be5d8
Compare
|
I moved the tests to a slightly bigger runner and it looks like we're through :) I also updated the very expensive tests workflow so that it behaves similarly to our regular one. The one difference is, it will also get triggered whenever a label is added to a PR. |
rvagg
left a comment
There was a problem hiding this comment.
I wish it were easier to compare the old test.yml and reusable-test.yml. I tried checking old and new out locally and manually diffing them but the changes are huge so maybe formatting was changed? I ended up side-by-side in the GitHub UI to confirm they're mostly the same. I find these files really dense and hard to parse so keeping diffs minimal where possible helps.
|
This is the diff of |
|
ACK, thanks, this is good to go I think |
BigLep
left a comment
There was a problem hiding this comment.
Minor comments, but looks good to me. I'll let you merge in case you want to monitor anything afterwards.
Related Issues
Closes #12136
Proposed Changes
In this PR I set up a new workflow responsible for running very expensive tests. I also enable running expensive tests in our regular test workflow.
Additional Info
This is an updated version of #12234
In this iteration, the very expensive tests workflow is separate to the test workflow. This is so that we don't have to rerun all the tests on a label change.
The way the new workflow works is that when one adds a
need/very-expensive-testslabel to a PR, the workflow will start, remove the label, and execute the tests.The new workflow will only execute the tests that have very expensive components to them. The information about that is currently stored in the
cicmd tool. It will be moved to the test files themselves in the future once we move more towards the self-identification setup.This is not ready to be merged because the only very expensive test we have at the moment is failing with
signal: killed. Here's a link to the most recent failure: https://github.com/filecoin-project/lotus/actions/runs/13706584703Question: should the workflow comment on a PR with the very expensive test results? I think it might be useful since if one modifies labels after the very expensive tests are run, then the link to the very expensive tests run would disappear from the PR.
Checklist
Before you mark the PR ready for review, please make sure that: