Commit 1cb1a92e authored by Gyanendra Mishra's avatar Gyanendra Mishra Committed by GitHub

ci: add nightly tests (#136)

Changelog picked up from commits here:

ci: add more test cases and rename tests (#137)

---------
Co-authored-by: default avatarBarnabas Busa <busa.barnabas@gmail.com>
parent f084e7c7
...@@ -18,6 +18,16 @@ parameters: ...@@ -18,6 +18,16 @@ parameters:
type: boolean type: boolean
default: true default: true
# Install go version 1.19 to run our integration tests on the minimal version we support
setup_kurtosis: &setup_kurtosis
- run: |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update
sudo apt install kurtosis-cli
kurtosis config init dont-send-metrics
kurtosis engine restart
# NOTE: Because CircleCI jobs run on separate machines from each other, we duplicate steps (like checkout) between jobs. This is because doing the "correct" DRY # NOTE: Because CircleCI jobs run on separate machines from each other, we duplicate steps (like checkout) between jobs. This is because doing the "correct" DRY
# refactoring of, "one job for checkout, one job for build Docker image, etc." would require a) persisting files between jobs and b) persisting Docker images between # refactoring of, "one job for checkout, one job for build Docker image, etc." would require a) persisting files between jobs and b) persisting Docker images between
# jobs. Both are annoying (saving/loading workspaces require re-downloading the workspace over the network, and there doesn't seem to be a good way to do Docker # jobs. Both are annoying (saving/loading workspaces require re-downloading the workspace over the network, and there doesn't seem to be a good way to do Docker
...@@ -27,38 +37,114 @@ jobs: ...@@ -27,38 +37,114 @@ jobs:
run_starlark: run_starlark:
executor: ubuntu_vm executor: ubuntu_vm
steps: steps:
# Set up Kurtosis - <<: *setup_kurtosis
- run: | - checkout
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update - run: kurtosis run ${PWD}
sudo apt install kurtosis-cli
check_latest_version:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout - checkout
# We don't send metrics to avoid polluting our logs - run: kurtosis run --dry-run ${PWD}
- run: kurtosis config init dont-send-metrics
- run: kurtosis engine restart besu-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/besu-all.json)"
- run: kurtosis run ${PWD} erigon-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/erigon-all.json)"
check_latest_version: full-interop:
executor: ubuntu_vm executor: ubuntu_vm
resource_class: xlarge
steps: steps:
# Set up Kurtosis - <<: *setup_kurtosis
- run: | - checkout
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list - run: kurtosis run ${PWD} "$(cat ./.circleci/tests/full-interop.json)"
sudo apt update
sudo apt install kurtosis-cli
geth-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout - checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/geth-all.json)"
# We don't send metrics to avoid polluting our logs lighthouse-all:
- run: kurtosis config init dont-send-metrics executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/lighthouse-all.json)"
- run: kurtosis engine restart lodestar-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/lodestar-all.json)"
- run: kurtosis run --dry-run ${PWD} mix:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/mix.json)"
nethermind-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/nethermind-all.json)"
nimbus-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/nimbus-all.json)"
prysm-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/prysm-all.json)"
reth-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/reth-all.json)"
teku-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/teku-all.json)"
workflows: workflows:
check_latest_version: check_latest_version:
...@@ -67,6 +153,42 @@ workflows: ...@@ -67,6 +153,42 @@ workflows:
- check_latest_version: - check_latest_version:
context: context:
- slack-secrets - slack-secrets
- besu-all:
context:
- slack-secrets
- erigon-all:
context:
- slack-secrets
- full-interop:
context:
- slack-secrets
- geth-all:
context:
- slack-secrets
- lighthouse-all:
context:
- slack-secrets
- lodestar-all:
context:
- slack-secrets
- mix:
context:
- slack-secrets
- nethermind-all:
context:
- slack-secrets
- nimbus-all:
context:
- slack-secrets
- prysm-all:
context:
- slack-secrets
- reth-all:
context:
- slack-secrets
- teku-all:
context:
- slack-secrets
build: build:
when: << pipeline.parameters.should-enable-build-workflow >> when: << pipeline.parameters.should-enable-build-workflow >>
......
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "teku"
},
{
"el_client_type": "geth",
"cl_client_type": "teku"
},
{
"el_client_type": "besu",
"cl_client_type": "prysm"
},
{
"el_client_type": "besu",
"cl_client_type": "nimbus"
},
{
"el_client_type": "besu",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "besu",
"cl_client_type": "lodestar"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "teku"
},
{
"el_client_type": "erigon",
"cl_client_type": "teku"
},
{
"el_client_type": "erigon",
"cl_client_type": "prysm"
},
{
"el_client_type": "erigon",
"cl_client_type": "nimbus"
},
{
"el_client_type": "erigon",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "erigon",
"cl_client_type": "lodestar"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants":[
{
"el_client_type":"geth",
"cl_client_type":"lighthouse"
},
{
"el_client_type":"geth",
"cl_client_type":"nimbus"
},
{
"el_client_type":"geth",
"cl_client_type":"lodestar"
},
{
"el_client_type":"geth",
"cl_client_type":"teku"
},
{
"el_client_type":"geth",
"cl_client_type":"prysm"
},
{
"el_client_type":"reth",
"cl_client_type":"lighthouse"
},
{
"el_client_type":"reth",
"cl_client_type":"nimbus"
},
{
"el_client_type":"reth",
"cl_client_type":"lodestar"
},
{
"el_client_type":"reth",
"cl_client_type":"teku"
},
{
"el_client_type":"reth",
"cl_client_type":"prysm"
},
{
"el_client_type":"erigon",
"cl_client_type":"lighthouse"
},
{
"el_client_type":"erigon",
"cl_client_type":"nimbus"
},
{
"el_client_type":"erigon",
"cl_client_type":"lodestar"
},
{
"el_client_type":"erigon",
"cl_client_type":"teku"
},
{
"el_client_type":"erigon",
"cl_client_type":"prysm"
},
{
"el_client_type":"nethermind",
"cl_client_type":"lighthouse"
},
{
"el_client_type":"nethermind",
"cl_client_type":"nimbus"
},
{
"el_client_type":"nethermind",
"cl_client_type":"lodestar"
},
{
"el_client_type":"nethermind",
"cl_client_type":"teku"
},
{
"el_client_type":"nethermind",
"cl_client_type":"prysm"
},
{
"el_client_type":"besu",
"cl_client_type":"lighthouse"
},
{
"el_client_type":"besu",
"cl_client_type":"nimbus"
},
{
"el_client_type":"besu",
"cl_client_type":"lodestar"
},
{
"el_client_type":"besu",
"cl_client_type":"teku"
},
{
"el_client_type":"besu",
"cl_client_type":"prysm"
}
],
"network_params":{
"capella_fork_epoch":1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "teku"
},
{
"el_client_type": "geth",
"cl_client_type": "prysm"
},
{
"el_client_type": "geth",
"cl_client_type": "nimbus"
},
{
"el_client_type": "geth",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "geth",
"cl_client_type": "lodestar"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "nethermind",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "erigon",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "besu",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "reth",
"cl_client_type": "lighthouse"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "lodestar"
},
{
"el_client_type": "nethermind",
"cl_client_type": "lodestar"
},
{
"el_client_type": "erigon",
"cl_client_type": "lodestar"
},
{
"el_client_type": "besu",
"cl_client_type": "lodestar"
},
{
"el_client_type": "reth",
"cl_client_type": "lodestar"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "teku"
},
{
"el_client_type": "nethermind",
"cl_client_type": "prysm"
},
{
"el_client_type": "erigon",
"cl_client_type": "nimbus"
},
{
"el_client_type": "besu",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "reth",
"cl_client_type": "lodestar"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "nethermind",
"cl_client_type": "teku"
},
{
"el_client_type": "nethermind",
"cl_client_type": "prysm"
},
{
"el_client_type": "nethermind",
"cl_client_type": "nimbus"
},
{
"el_client_type": "nethermind",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "nethermind",
"cl_client_type": "lodestar"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "nimbus"
},
{
"el_client_type": "nethermind",
"cl_client_type": "nimbus"
},
{
"el_client_type": "erigon",
"cl_client_type": "nimbus"
},
{
"el_client_type": "besu",
"cl_client_type": "nimbus"
},
{
"el_client_type": "reth",
"cl_client_type": "nimbus"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "prysm"
},
{
"el_client_type": "nethermind",
"cl_client_type": "prysm"
},
{
"el_client_type": "erigon",
"cl_client_type": "prysm"
},
{
"el_client_type": "besu",
"cl_client_type": "prysm"
},
{
"el_client_type": "reth",
"cl_client_type": "prysm"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "teku"
},
{
"el_client_type": "reth",
"cl_client_type": "teku"
},
{
"el_client_type": "reth",
"cl_client_type": "prysm"
},
{
"el_client_type": "reth",
"cl_client_type": "nimbus"
},
{
"el_client_type": "reth",
"cl_client_type": "lighthouse"
},
{
"el_client_type": "reth",
"cl_client_type": "lodestar"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
{
"participants": [
{
"el_client_type": "geth",
"cl_client_type": "teku"
},
{
"el_client_type": "nethermind",
"cl_client_type": "teku"
},
{
"el_client_type": "erigon",
"cl_client_type": "teku"
},
{
"el_client_type": "besu",
"cl_client_type": "teku"
},
{
"el_client_type": "reth",
"cl_client_type": "teku"
}
],
"network_params": {
"capella_fork_epoch": 1
},
"launch_additional_services": false
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment