GHA for Kurtosis
Simple GHA workflow to spin up a kurtosis network from a simple config
- test besu against all CLs,
- use assertoor to assert block production Can copy from https://github.com/Consensys/teku/pull/8306
maybe nightly? maybe need large runners?
GHA reference: https://github.com/marketplace/actions/kurtosis-assertoor-github-action
https://github.com/kurtosis-tech/kurtosis-github-action/blob/main/action.yaml
I had a look of both GitHub actions. Looks like this https://github.com/marketplace/actions/kurtosis-assertoor-github-action wait for the assertoo tests to complete. I will investigate this action see how we can adopt it.
Executed Kurtosis with Assertoor in GitHub actions for different combinations. Tests were executed in a private repo with 16-core(64GB memory) GitHub runner.
- Basic test
run_lifecycle_testtakes about 30min - Running all Assertoor tests takes over 6hrs
- Running multiple client combinations besu+teku, geth+teku, nethermind+teku is possible and these runs simultaneously. However including all possible supported options failed the GitHub action. It could be a resource issue
- In the PoC latest Teku image has been used. It is possible to specify any image using the Kurtosis argument file
Next steps
- Discuss where Kurtosis can add value in the CI. Given running all tests take longer time, it may best to select specific tests to run in CI
- May be running all tests could be helpful before a release
TODO
- add to readme how to run the workflow
- allow choosing a different repo - so we can test PR branches
- see if we can run the pectra tests
GHA created in the private repository https://github.com/Consensys/protocols-devnets This supports running Kurtosis with Ethereum package on Besu for specific tag/branch/sha. Currently supports Assertoor stability checks only. Could add more Assertoor tests as required.
Adding Pectra tests will be handled in a separate issue