Skip to content

no env vars

no env vars #5

Workflow file for this run

---
name: TestNightly
on:
push:
jobs:
# Deploy the CDK environment in one step.
monolithic:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: 1.21
cache-dependency-path: scripts/zkevm-config-diff/go.sum
- name: Install kurtosis
shell: bash
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=0.90.1
kurtosis version
- name: Disable kurtosis analytics
shell: bash
run: kurtosis analytics disable
- name: Install yq
shell: bash
run: |
pip3 install yq
yq --version
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Enable workload
run: yq -Y --in-place '.apply_workload = true' params.yml
- name: Deploy Kurtosis CDK package
run: kurtosis run --enclave cdk-v1 --args-file params.yml --image-download always .
- name: Check that batches are being verified
shell: bash
run: |
timeout_minutes=10
start_time=$(date +%s)
end_time=$((start_time + timeout_minutes*60))
export ETH_RPC_URL="$(kurtosis port print cdk-v1 zkevm-node-rpc-001 http-rpc)"
while (( $(date +%s) <= end_time )); do
current_time=$(date +%s)
verified_batches=$(cast to-dec $(cast rpc zkevm_verifiedBatchNumber | sed 's/"//g'))
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verified Batches: $verified_batches"
if (( verified_batches > 30 )); then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Exiting... Confirmed verified batches incrementing."
exit 0
fi
sleep 10
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Exiting... Timeout reached. No batches were verified."
exit 1
# Compare configs.
- name: Dump configs
working-directory: ./scripts/zkevm-config-diff
run: |
mkdir -p default-configs kurtosis-cdk-configs
sh zkevm_config.sh dump default ./default-configs
echo
sh zkevm_config.sh dump kurtosis-cdk ./kurtosis-cdk-configs
- name: Compare configs
working-directory: ./scripts/zkevm-config-diff
run: sh zkevm_config.sh compare configs ./default-configs ./kurtosis-cdk-configs
- name: Diff configs
working-directory: ./scripts/zkevm-config-diff
run: diff -r ./default-configs ./kurtosis-cdk-configs || true
# Deploy the CDK environment incrementally, stage by stage.
incremental:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install kurtosis
shell: bash
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=0.90.1
kurtosis version
- name: Disable kurtosis analytics
shell: bash
run: kurtosis analytics disable
- name: Install yq
shell: bash
run: |
pip3 install yq
yq --version
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Disable all deployment steps
run: yq -Y --in-place 'with_entries(if .value | type == "boolean" then .value = false else . end)' params.yml
- name: Deploy L1
run: |
yq -Y --in-place '.deploy_l1 = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.deploy_l1 = false' params.yml # reset
- name: Deploy zkEVM contracts on L1
run: |
yq -Y --in-place '.deploy_zkevm_contracts_on_l1 = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml --image-download always .
yq -Y --in-place '.deploy_zkevm_contracts_on_l1 = false' params.yml # reset
- name: Deploy zkEVM node and cdk peripheral databases
run: |
yq -Y --in-place '.deploy_databases = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.deploy_databases = false' params.yml # reset
- name: Deploy CDK central environment
run: |
yq -Y --in-place '.deploy_cdk_central_environment = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.deploy_cdk_central_environment = false' params.yml # reset
- name: Deploy CDK bridge infrastructure
run: |
yq -Y --in-place '.deploy_cdk_bridge_infra = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.deploy_cdk_bridge_infra = false' params.yml # reset
- name: Deploy zkEVM permissionless node
run: |
# Retrieve genesis file.
kurtosis files download cdk-v1 genesis /tmp
cp /tmp/genesis.json templates/permissionless-node/genesis.json
# Deploy permisionless node.
yq -Y --in-place '.deploy_zkevm_permissionless_node = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.deploy_zkevm_permissionless_node = false' params.yml # reset
- name: Deploy CDK erigon node
run: |
yq -Y --in-place '.deploy_cdk_erigon_node = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.deploy_cdk_erigon_node = false' params.yml # reset
- name: Deploy observability stack
run: |
yq -Y --in-place '.deploy_observability = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.deploy_observability = false' params.yml # reset
- name: Deploy Blockscout stack
run: |
yq -Y --in-place '.deploy_l2_blockscout = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.deploy_l2_blockscout = false' params.yml # reset
- name: Deploy ETH load balancer
run: |
yq -Y --in-place '.deploy_blutgang = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.deploy_blutgang = false' params.yml # reset
- name: Apply workload
run: |
yq -Y --in-place '.apply_workload = true' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml .
yq -Y --in-place '.apply_workload = false' params.yml # reset
- name: Check that batches are being verified
shell: bash
run: |
timeout_minutes=10
start_time=$(date +%s)
end_time=$((start_time + timeout_minutes*60))
export ETH_RPC_URL="$(kurtosis port print cdk-v1 zkevm-node-rpc-001 http-rpc)"
while (( $(date +%s) <= end_time )); do
current_time=$(date +%s)
verified_batches=$(cast to-dec $(cast rpc zkevm_verifiedBatchNumber | sed 's/"//g'))
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verified Batches: $verified_batches"
if (( verified_batches > 30 )); then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Exiting... Confirmed verified batches incrementing."
exit 0
fi
sleep 10
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Exiting... Timeout reached. No batches were verified."
exit 1
# Deploy the CDK environment without specifying any parameter file.
configless:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install kurtosis
shell: bash
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=0.90.1
kurtosis version
- name: Disable kurtosis analytics
shell: bash
run: kurtosis analytics disable
- name: Install yq
shell: bash
run: |
pip3 install yq
yq --version
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
# Deploy components.
- name: Deploy Kurtosis CDK package
run: kurtosis run --enclave cdk-v1 --image-download always .
- name: Check that batches are being verified
shell: bash
run: |
timeout_minutes=10
start_time=$(date +%s)
end_time=$((start_time + timeout_minutes*60))
export ETH_RPC_URL="$(kurtosis port print cdk-v1 zkevm-node-rpc-001 http-rpc)"
while (( $(date +%s) <= end_time )); do
current_time=$(date +%s)
verified_batches=$(cast to-dec $(cast rpc zkevm_verifiedBatchNumber | sed 's/"//g'))
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verified Batches: $verified_batches"
if (( verified_batches > 30 )); then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Exiting... Confirmed verified batches incrementing."
exit 0
fi
sleep 10
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Exiting... Timeout reached. No batches were verified."
exit 1
# Deploy the CDK environment with the gas token feature enabled.
gas-token:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install kurtosis
shell: bash
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=0.90.1
kurtosis version
- name: Disable kurtosis analytics
shell: bash
run: kurtosis analytics disable
- name: Install yq
shell: bash
run: |
pip3 install yq
yq --version
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Enable gas token feature
run: yq -Y --in-place '.args.zkevm_use_gas_token_contract = true' params.yml
- name: Deploy Kurtosis CDK package
run: kurtosis run --enclave cdk-v1 --args-file params.yml --image-download always .
- name: Check that batches are being verified
shell: bash
run: |
timeout_minutes=10
start_time=$(date +%s)
end_time=$((start_time + timeout_minutes*60))
export ETH_RPC_URL="$(kurtosis port print cdk-v1 zkevm-node-rpc-001 http-rpc)"
while (( $(date +%s) <= end_time )); do
current_time=$(date +%s)
verified_batches=$(cast to-dec $(cast rpc zkevm_verifiedBatchNumber | sed 's/"//g'))
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verified Batches: $verified_batches"
if (( verified_batches > 30 )); then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Exiting... Confirmed verified batches incrementing."
exit 0
fi
sleep 10
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Exiting... Timeout reached. No batches were verified."
exit 1
# Deploy the CDK environment against a local l1 chain with pre-deployed zkevm contracts.
pre-deployed-contracts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install kurtosis
shell: bash
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=0.90.1
kurtosis version
- name: Disable kurtosis analytics
shell: bash
run: kurtosis analytics disable
- name: Install yq
shell: bash
run: |
pip3 install yq
yq --version
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Deploy L1 and zkEVM contracts
run: |
# Disable all deployment steps.
yq -Y --in-place 'with_entries(if .value | type == "boolean" then .value = false else . end)' params.yml
# Only deploy l1 and zkevm contracts.
yq -Y --in-place '(.deploy_l1 = true) | (.deploy_zkevm_contracts_on_l1 = true)' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml --image-download always .
- name: Specify the rollup manager contract address and a few other parameters
run: |
zkevm_rollup_manager_address=$(kurtosis service exec cdk-v1 contracts-001 "cat /opt/zkevm/combined.json" | tail -n +2 | jq .polygonRollupManagerAddress)
yq -Y --in-place ".args.zkevm_rollup_manager_address = $zkevm_rollup_manager_address" params.yml
zkevm_rollup_manager_block_number=$(kurtosis service exec cdk-v1 contracts-001 "cat /opt/zkevm/combined.json" | tail -n +2 | jq .deploymentRollupManagerBlockNumber)
yq -Y --in-place ".args.zkevm_rollup_manager_block_number = $zkevm_rollup_manager_block_number" params.yml
zkevm_global_exit_root_l2_address=$(kurtosis service exec cdk-v1 contracts-001 "cat /opt/zkevm/combined.json" | tail -n +2 | jq .polygonZkEVMGlobalExitRootL2Address)
yq -Y --in-place ".args.zkevm_global_exit_root_l2_address = $zkevm_global_exit_root_l2_address" params.yml
polygon_data_committee_address=$(kurtosis service exec cdk-v1 contracts-001 "cat /opt/zkevm/combined.json" | tail -n +2 | jq .polygonDataCommitteeAddress)
yq -Y --in-place ".args.polygon_data_committee_address = $polygon_data_committee_address" params.yml
zkevm_admin_address=$(kurtosis service exec cdk-v1 contracts-001 "cat /opt/zkevm/combined.json" | tail -n +2 | jq .admin)
yq -Y --in-place ".args.zkevm_admin_address = $zkevm_admin_address" params.yml
- name: Deploy the rest of the components
run: |
# Do not deploy l1 and zkevm contracts.
yq -Y --in-place '(.deploy_l1 = false) | (.deploy_zkevm_contracts_on_l1 = false)' params.yml
# Deploy databases, cdk central/trusted environment, cdk/bridge infra and observability stack.
yq -Y --in-place '(.deploy_databases = true) | (.deploy_cdk_central_environment = true) | (.deploy_cdk_bridge_infra = true) | (.deploy_observability = true)' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml --image-download always .
- name: Check that batches are being verified
shell: bash
run: |
timeout_minutes=10
start_time=$(date +%s)
end_time=$((start_time + timeout_minutes*60))
export ETH_RPC_URL="$(kurtosis port print cdk-v1 zkevm-node-rpc-001 http-rpc)"
while (( $(date +%s) <= end_time )); do
current_time=$(date +%s)
verified_batches=$(cast to-dec $(cast rpc zkevm_verifiedBatchNumber | sed 's/"//g'))
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verified Batches: $verified_batches"
if (( verified_batches > 30 )); then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Exiting... Confirmed verified batches incrementing."
exit 0
fi
sleep 10
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Exiting... Timeout reached. No batches were verified."
exit 1
# Deploy a standalone permisionless node against Sepolia.
permisionless-node:
# Prevent this job to run on forks.
if: github.repository == '0xPolygon/kurtosis-cdk'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install kurtosis
shell: bash
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=0.90.1
kurtosis version
- name: Disable kurtosis analytics
shell: bash
run: kurtosis analytics disable
- name: Install yq
shell: bash
run: |
pip3 install yq
yq --version
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Configure permisionless node parameters
run: |
yq -Y --in-place '.args.l1_rpc_url = "${{ secrets.ALCHEMY_SEPOLIA_RPC_URL }}"' params.yml
yq -Y --in-place '.args.genesis_file = "templates/permissionless-node/test-genesis.json"' params.yml
- name: Deploy the permisionless node
run: |
# Disable all steps except permisionless node.
yq -Y --in-place 'with_entries(if .key == "deploy_zkevm_permissionless_node" then .value = true elif .value | type == "boolean" then .value = false else . end)' params.yml
kurtosis run --enclave cdk-v1 --args-file params.yml --image-download always .
# Deploy the CDK environment in rollup mode (data availability).
rollup-da-mode:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install kurtosis
shell: bash
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=0.90.1
kurtosis version
- name: Disable kurtosis analytics
shell: bash
run: kurtosis analytics disable
- name: Install yq
shell: bash
run: |
pip3 install yq
yq --version
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Set rollup data availability mode
run: yq -Y --in-place '.args.data_availability_mode = "rollup"' params.yml
- name: Deploy Kurtosis CDK package
run: kurtosis run --enclave cdk-v1 --image-download always .
- name: Check that batches are being verified
shell: bash
run: |
timeout_minutes=10
start_time=$(date +%s)
end_time=$((start_time + timeout_minutes*60))
export ETH_RPC_URL="$(kurtosis port print cdk-v1 zkevm-node-rpc-001 http-rpc)"
while (( $(date +%s) <= end_time )); do
current_time=$(date +%s)
verified_batches=$(cast to-dec $(cast rpc zkevm_verifiedBatchNumber | sed 's/"//g'))
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verified Batches: $verified_batches"
if (( verified_batches > 30 )); then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Exiting... Confirmed verified batches incrementing."
exit 0
fi
sleep 10
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Exiting... Timeout reached. No batches were verified."
exit 1
# Deploy the CDK environment in cdk-validium mode (data availability).
cdk-validium-da-mode:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install kurtosis
shell: bash
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=0.90.1
kurtosis version
- name: Disable kurtosis analytics
shell: bash
run: kurtosis analytics disable
- name: Install yq
shell: bash
run: |
pip3 install yq
yq --version
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Set cdk-validium data availability mode
run: yq -Y --in-place '.args.data_availability_mode = "cdk-validium"' params.yml
- name: Deploy Kurtosis CDK package
run: kurtosis run --enclave cdk-v1 --image-download always .
- name: Check that batches are being verified
shell: bash
run: |
timeout_minutes=10
start_time=$(date +%s)
end_time=$((start_time + timeout_minutes*60))
export ETH_RPC_URL="$(kurtosis port print cdk-v1 zkevm-node-rpc-001 http-rpc)"
while (( $(date +%s) <= end_time )); do
current_time=$(date +%s)
verified_batches=$(cast to-dec $(cast rpc zkevm_verifiedBatchNumber | sed 's/"//g'))
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verified Batches: $verified_batches"
if (( verified_batches > 30 )); then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Exiting... Confirmed verified batches incrementing."
exit 0
fi
sleep 10
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Exiting... Timeout reached. No batches were verified."
exit 1
# Deploy the CDK environment with cdk-erigon as a sequencer.
cdk-erigon-sequencer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install kurtosis
shell: bash
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=0.90.1
kurtosis version
- name: Disable kurtosis analytics
shell: bash
run: kurtosis analytics disable
- name: Install yq
shell: bash
run: |
pip3 install yq
yq --version
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Deploy Kurtosis CDK package
run: kurtosis run --enclave cdk-v1 --args-file cdk-erigon-sequencer-params.yml --image-download always .
- name: Check that batches are being verified
shell: bash
run: |
timeout_minutes=10
start_time=$(date +%s)
end_time=$((start_time + timeout_minutes*60))
export ETH_RPC_URL="$(kurtosis port print cdk-v1 zkevm-node-rpc-001 http-rpc)"
while (( $(date +%s) <= end_time )); do
current_time=$(date +%s)
verified_batches=$(cast to-dec $(cast rpc zkevm_verifiedBatchNumber | sed 's/"//g'))
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verified Batches: $verified_batches"
if (( verified_batches > 30 )); then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Exiting... Confirmed verified batches incrementing."
exit 0
fi
sleep 10
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Exiting... Timeout reached. No batches were verified."
exit 1