-
Notifications
You must be signed in to change notification settings - Fork 1
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
Using this package to run tests with github actions is buggy #40
Comments
After some debugging, it seems that this problem is caused by an unknown issue that is causing the registry contract to not be deployed. |
@dtbuchholz it looks like tablelandnetwork/local-tableland#433 did not fix this issue unfortunately. It still looks like the deploy process is silently crashing, or never starting? |
@joewagner dang...this is frustrating! I can try tweaking some things next week and maybe configure a subset of separate tests to work with A couple of things came up through some chatgpt convos. First, maybe the cache is out of date or corrupted? Since things start properly, I doubt this is the root cause but figured I'd mention it. We could temporarily try sort of flushing it by adding a version to the run, like:
The other point was on Last thought. When I was debugging, I threw in a shelljs echo command with Other than that, I wonder if there's something unknown with hardhat. A last ditch effort could be to replace it with |
Definitely all good thoughts.
Then the process exits without an error, which is obviously not super helpful. The hardhat node starts without any issue, and the Validator starts and connects to hardhat. But since the contract doesn't exist the validator can't be of much use, and then the tests fail, (mostly with polling timeouts). The main take home from that is that since hardhat is starting, and the validator connects to it, i don't think the issue has to do with the port being already in use. It definitely could have to do with that, but it doesn't seem to be the problem in my tests. |
@joewagner would CircleCI help with debugging this? i have some free credits that i can get if it's relevant. |
@dtbuchholz Maybe!? That definitely looks promising. I found an Action that starts an ssh server on the machine running the workflows, it seems like it would be helpful too. https://github.com/marketplace/actions/debugging-with-ssh |
hmm interesting. kk i'll get the credits and check that action out, too. |
I was able to get more information on the registry deploy process error.
|
@joewagner no way! if the issue is due to proxying, we could try one of these out (via here): // hardhat.config.ts
const { ProxyAgent, setGlobalDispatcher } = require("undici");
const proxyAgent = new ProxyAgent('http://127.0.0.1:7890'); // change to yours
setGlobalDispatcher(proxyAgent); or via env vars:
|
It looks like the error is |
(moving to #96 for Linear syncing puropses) |
what happens
Running tests on a developer machine always works as expected, but when the tests are run as part of CI via github actions they fail about half the time.
how to reproduce
For an Example look at: https://github.com/tablelandnetwork/jeti/actions/runs/5191892282/jobs/9360322039
You will see that the network logs are turned on and the tests start running before the Validator has created the healthbot table. Some of the tests pass in this case, but the tests that create tables end up failing because the validator transaction receipt polling is aborted after the polling timeout is reached.
As a means of exploring why this is happening I had the test setup wait for a full 60 seconds after the local-tableland network signaled that it is ready. The same intermittent failures are still occurring.
I have a few theories why this is happening:
What is expected
This package should work correctly for CI done via github actions
Additional context
The parent process signals that the network is ready by inspecting the Validator process stdout, and waiting for a specific message. That message is currently the string "processing height". This is brittle at best, and we should consider having the Validator log a specific message when it considers itself to be fully online.
The text was updated successfully, but these errors were encountered: