-
Notifications
You must be signed in to change notification settings - Fork 92
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
use dynamic config building in CI #534
Conversation
This works by having a small workflow run, compute the list of chain ids to run genesis validation checks on, and then modify a subsequent config file which circleci then runs.
.circleci/continue_config.yml
Outdated
- golang-validate-genesis-allocs: | ||
matrix: | ||
parameters: | ||
# This value will be replaced by the generate_test_config.sh script |
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.
Is below the fallback list, if targetList
is empty in generate_test_config.sh
? If so, might be worth mentioning that in the comment.
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.
Leaving approved, noted a small question in the comment.
Co-authored-by: Vinod Damle <[email protected]>
commit cbc662a Merge: 3787211 70e9dbc Author: geoknee <[email protected]> Date: Fri Aug 30 16:18:49 2024 +0100 Merge remote-tracking branch 'origin/main' into gk/gen-val-met commit 3787211 Author: George Knee <[email protected]> Date: Fri Aug 30 15:40:42 2024 +0100 remove temporarily added chains (#535) * git restore --source=main -- superchain * just codegen * just lint-all * lint * typo commit 7d3ed21 Author: George Knee <[email protected]> Date: Fri Aug 30 15:06:02 2024 +0100 use dynamic config building in CI (#534) * use dynamic config building in CI This works by having a small workflow run, compute the list of chain ids to run genesis validation checks on, and then modify a subsequent config file which circleci then runs. * add comment * fan in * fix * fix script * Update .circleci/continue_config.yml Co-authored-by: Vinod Damle <[email protected]> --------- Co-authored-by: Vinod Damle <[email protected]> commit c7e50fe Author: geoknee <[email protected]> Date: Fri Aug 30 11:24:10 2024 +0100 add testGenesisAllocsMetadata commit fa01d6b Author: geoknee <[email protected]> Date: Fri Aug 30 11:01:45 2024 +0100 rename commands commit b8ba6a4 Author: geoknee <[email protected]> Date: Fri Aug 30 11:00:37 2024 +0100 rename test commit 6fafbe4 Author: geoknee <[email protected]> Date: Thu Aug 29 23:11:24 2024 +0100 tidy up test script commit b3fcdb2 Author: geoknee <[email protected]> Date: Thu Aug 29 22:57:02 2024 +0100 remove temporary directory after tests run commit 4cbf389 Author: geoknee <[email protected]> Date: Thu Aug 29 22:50:08 2024 +0100 dedupe perChainTestName commit 4ebaafc Author: geoknee <[email protected]> Date: Thu Aug 29 22:28:25 2024 +0100 improve naming of ci steps commit 732260c Author: geoknee <[email protected]> Date: Thu Aug 29 18:39:19 2024 +0100 harmonize op-geth version commit ae24ca1 Author: geoknee <[email protected]> Date: Thu Aug 29 18:36:42 2024 +0100 just tidy-all commit 46c9ec1 Merge: b01525b 936d40b Author: geoknee <[email protected]> Date: Thu Aug 29 18:36:21 2024 +0100 Merge remote-tracking branch 'origin/main' into gk/gen-val-met commit b01525b Author: George Knee <[email protected]> Date: Thu Aug 29 18:33:39 2024 +0100 Get genesis validation checks to run on CI (#529) * switch to cimg/go:1.22.6-node docker image for genesis validation * remove set -e (nvm.sh exits with code 3, we can apparently just ignore that) * use bash instead of sh * use . instead of source * install pnpm * move optimism-temporary out from under superchain-registry this seems to make go module resolution work as expected * do not allow validate-genesis to timeout * improve pipefail behaviour we allow the scripts which load nvm and gvm to fail * just lint-all * remove all set -e behaviour gives highest chance that validation can succeed * stream output from test helps with debugging, prevents timeouts on circleci * try running as a matrix * add base and base sepolia to genesis validation list (#530) * add base sepolia to genesis validation list * add base mainnet to genesis validation list * Add validation metadata for Lisk mainnet + testnet (#531) * temp: gk/genadd lisk mainnet (revertme) * add lisk metadata for genesis validation * temp: add lisk sepolia (revertme) * add genesis validation metadata for lisk sepolia * Update .circleci/config.yml * add comment commit 1365e25 Author: George Knee <[email protected]> Date: Wed Aug 28 12:19:48 2024 +0100 use localised, gitignored optimism-temporary directory for genesis validation purposes (#507) commit 6793309 Author: George Knee <[email protected]> Date: Sat Aug 24 17:32:53 2024 +0100 Enhance `add-chain` tool to capture deploy config and monorep commit information (#504) * add-chain: ingest and store deploy-config and genesis-creation commit * remove genesis-system-configs dir we no longer use this * add test data for deploy-config * check errs properly * link validation to add-chain * fix up add-chain e2e tests * simplify test side effect handling * don't bother cleaning up -test genesis validation inputs (They now don't end up bound into the validation package) * tweak spacing * prefer os.ModePerm over 0o777 * typo * typo * remove unused params * use commented constants for metadata defaults * fix clean-add-chain cmd commit bae89c0 Author: George Knee <[email protected]> Date: Thu Aug 22 13:35:38 2024 +0100 Get mode, metal and zora genesis.allocs validation working (#496) * introduce node_version need to reexamine writeDeploymentsLegacy * fix bug in writeDeploymentsLegacy * fix declaration of legacy deployments and add note * improve diff * use hardhat Deployment type to pad data and avoid unmarshaling errors e.g. on mode * fix writeDeploymentsLegacy, mode now validates! * remove note * introduce GenesisCreationCommand mapping allows metadata file to choose from a list and have chainId automatically injected into command * introduce BuilldCommand mapping * op sepolia validates * remove UseLegacyDeploymentsFormat * remove op mainnet metadata for now * remove op sepolia (it doesn't validate yet) * echo nvm version * just codegen * load nvm * fix * try installing nvm in a step * require node_version to be set * just lint-all * attempt to patch genesis creation source code to make validation work at a wider range of commits * adds metal metadata -- validates! * add zora metadata -- validates! commit 11982b8 Author: geoknee <[email protected]> Date: Tue Aug 20 13:33:49 2024 +0100 introduce boolean switch for using legacy deployments format commit 96b1810 Author: geoknee <[email protected]> Date: Tue Aug 20 13:29:39 2024 +0100 linting commit 6dbc88e Author: geoknee <[email protected]> Date: Tue Aug 20 13:28:14 2024 +0100 no need to install just commit e28ca59 Author: geoknee <[email protected]> Date: Tue Aug 20 13:26:47 2024 +0100 install nvm commit ab4ceba Author: geoknee <[email protected]> Date: Tue Aug 20 13:22:38 2024 +0100 try removing source command commit f5de7e7 Author: geoknee <[email protected]> Date: Tue Aug 20 13:14:32 2024 +0100 introduce monorepoBuildCommand artifact commit 0516b9e Author: geoknee <[email protected]> Date: Tue Aug 20 13:03:17 2024 +0100 4801 passes commit d1fbbaa Author: geoknee <[email protected]> Date: Tue Aug 20 13:01:19 2024 +0100 add nvm commit ab1b6e8 Author: geoknee <[email protected]> Date: Tue Aug 20 12:46:50 2024 +0100 change format of genesis creation command commit ccbe3da Author: geoknee <[email protected]> Date: Tue Aug 20 12:00:38 2024 +0100 some small fixes chain 480 passes! commit 65a80dd Author: geoknee <[email protected]> Date: Tue Aug 20 11:38:47 2024 +0100 add worldchain commit d1aa945 Author: geoknee <[email protected]> Date: Tue Aug 20 11:29:17 2024 +0100 add sepolia/worldcoin commit 4b4ab94 Author: geoknee <[email protected]> Date: Tue Aug 20 11:24:05 2024 +0100 fix ci config commit 858d754 Author: geoknee <[email protected]> Date: Mon Aug 19 19:27:47 2024 +0100 undo accidental changes commit f99b396 Author: geoknee <[email protected]> Date: Mon Aug 19 19:21:40 2024 +0100 add genesis predeploy test, validation metadata for chains 10,34443 and wire up commit 5ec1a6f Author: geoknee <[email protected]> Date: Mon Aug 19 17:49:46 2024 +0100 fix go.work version declaration
* use dynamic config building in CI This works by having a small workflow run, compute the list of chain ids to run genesis validation checks on, and then modify a subsequent config file which circleci then runs. * add comment * fan in * fix * fix script * Update .circleci/continue_config.yml Co-authored-by: Vinod Damle <[email protected]> --------- Co-authored-by: Vinod Damle <[email protected]>
* use dynamic config building in CI This works by having a small workflow run, compute the list of chain ids to run genesis validation checks on, and then modify a subsequent config file which circleci then runs. * add comment * fan in * fix * fix script * Update .circleci/continue_config.yml Co-authored-by: Vinod Damle <[email protected]> --------- Co-authored-by: Vinod Damle <[email protected]>
* use dynamic config building in CI This works by having a small workflow run, compute the list of chain ids to run genesis validation checks on, and then modify a subsequent config file which circleci then runs. * add comment * fan in * fix * fix script * Update .circleci/continue_config.yml Co-authored-by: Vinod Damle <[email protected]> --------- Co-authored-by: Vinod Damle <[email protected]>
* fix go.work version declaration * add genesis predeploy test, validation metadata for chains 10,34443 and wire up * undo accidental changes * fix ci config * add sepolia/worldcoin * add worldchain * some small fixes chain 480 passes! * change format of genesis creation command * add nvm * 4801 passes * introduce monorepoBuildCommand artifact * try removing source command * install nvm * no need to install just * linting * introduce boolean switch for using legacy deployments format * Get mode, metal and zora genesis.allocs validation working (#496) * introduce node_version need to reexamine writeDeploymentsLegacy * fix bug in writeDeploymentsLegacy * fix declaration of legacy deployments and add note * improve diff * use hardhat Deployment type to pad data and avoid unmarshaling errors e.g. on mode * fix writeDeploymentsLegacy, mode now validates! * remove note * introduce GenesisCreationCommand mapping allows metadata file to choose from a list and have chainId automatically injected into command * introduce BuilldCommand mapping * op sepolia validates * remove UseLegacyDeploymentsFormat * remove op mainnet metadata for now * remove op sepolia (it doesn't validate yet) * echo nvm version * just codegen * load nvm * fix * try installing nvm in a step * require node_version to be set * just lint-all * attempt to patch genesis creation source code to make validation work at a wider range of commits * adds metal metadata -- validates! * add zora metadata -- validates! * Enhance `add-chain` tool to capture deploy config and monorep commit information (#504) * add-chain: ingest and store deploy-config and genesis-creation commit * remove genesis-system-configs dir we no longer use this * add test data for deploy-config * check errs properly * link validation to add-chain * fix up add-chain e2e tests * simplify test side effect handling * don't bother cleaning up -test genesis validation inputs (They now don't end up bound into the validation package) * tweak spacing * prefer os.ModePerm over 0o777 * typo * typo * remove unused params * use commented constants for metadata defaults * fix clean-add-chain cmd * use localised, gitignored optimism-temporary directory for genesis validation purposes (#507) * Get genesis validation checks to run on CI (#529) * switch to cimg/go:1.22.6-node docker image for genesis validation * remove set -e (nvm.sh exits with code 3, we can apparently just ignore that) * use bash instead of sh * use . instead of source * install pnpm * move optimism-temporary out from under superchain-registry this seems to make go module resolution work as expected * do not allow validate-genesis to timeout * improve pipefail behaviour we allow the scripts which load nvm and gvm to fail * just lint-all * remove all set -e behaviour gives highest chance that validation can succeed * stream output from test helps with debugging, prevents timeouts on circleci * try running as a matrix * add base and base sepolia to genesis validation list (#530) * add base sepolia to genesis validation list * add base mainnet to genesis validation list * Add validation metadata for Lisk mainnet + testnet (#531) * temp: gk/genadd lisk mainnet (revertme) * add lisk metadata for genesis validation * temp: add lisk sepolia (revertme) * add genesis validation metadata for lisk sepolia * Update .circleci/config.yml * add comment * just tidy-all * harmonize op-geth version * improve naming of ci steps * dedupe perChainTestName * remove temporary directory after tests run * tidy up test script * rename test * rename commands * add testGenesisAllocsMetadata * use dynamic config building in CI (#534) * use dynamic config building in CI This works by having a small workflow run, compute the list of chain ids to run genesis validation checks on, and then modify a subsequent config file which circleci then runs. * add comment * fan in * fix * fix script * Update .circleci/continue_config.yml Co-authored-by: Vinod Damle <[email protected]> --------- Co-authored-by: Vinod Damle <[email protected]> * remove temporarily added chains (#535) * git restore --source=main -- superchain * just codegen * just lint-all * lint * typo * enhance comment * swap op-node1 and op-node2 to retain chronological ordering * add explainer about parallelism * modify message in genesis-allocs-all-ok * simplify patch file * tweak go version in golang-validate-genesis-allocs job * remove the test artifacts written to validationInputsDir * don't forget we swapped opnode1<>opnode2 * fix another opnode1<>opnode2 permutation * Revert "simplify patch file" This reverts commit 9b7f6d8. * fix op-node1/2 err * add note about gvm --------- Co-authored-by: Vinod Damle <[email protected]>
This works by having a small workflow run, compute the list of chain ids to run genesis validation checks on, and then modify a subsequent config file which circleci then runs.
See https://circleci.com/docs/dynamic-config/
This is preferable because the validation checks take about 6 minutes each and need to be sandboxed from each other (they each require the monorepo to be checked out at a different commit).