Nightly #126
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Nightly | |
on: | |
schedule: | |
- cron: 0 6 * * * # Run this workflow every day at 6 AM Paris time (UTC+2). | |
workflow_dispatch: | |
concurrency: | |
group: nightly-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
ENCLAVE_NAME: cdk | |
jobs: | |
# Deploy a standalone zkevm permisionless node against Cardona Sepolia Tesnet. | |
cardona-sepolia-testnet-pless-zkevm-node: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
# This step will only execute if the necessary secrets are available, preventing failures | |
# on pull requests from forked repositories. | |
if: ${{ env.DOCKERHUB_USERNAME && env.DOCKERHUB_TOKEN }} | |
env: | |
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Install Kurtosis CDK tools | |
uses: ./.github/actions/setup-kurtosis-cdk | |
- name: Deploy the permisionless node | |
run: | | |
yq -Y --in-place '.args.l1_rpc_url = "${{ secrets.ALCHEMY_SEPOLIA_RPC_URL }}"' ./.github/tests/pless-zkevm-node/cardona-sepolia-testnet-pless-zkevm-node.yml | |
kurtosis run --enclave=${{ env.ENCLAVE_NAME }} --args-file=./.github/tests/pless-zkevm-node/cardona-sepolia-testnet-pless-zkevm-node.yml --show-enclave-inspect=false . | |
# This step will only execute if the necessary secrets are available, preventing failures | |
# on pull requests from forked repositories. | |
if: ${{ env.ALCHEMY_SEPOLIA_RPC_URL}} | |
env: | |
ALCHEMY_SEPOLIA_RPC_URL: ${{ secrets.ALCHEMY_SEPOLIA_RPC_URL }} | |
- name: Inspect enclave | |
run: kurtosis enclave inspect ${{ env.ENCLAVE_NAME }} | |
- name: Monitor verified batches (zkEVM Node Permissionless RPC) | |
working-directory: .github/scripts | |
run: | | |
./monitor-verified-batches.sh \ | |
--enclave ${{ env.ENCLAVE_NAME }} \ | |
--rpc-url "$(kurtosis port print ${{ env.ENCLAVE_NAME }} zkevm-node-rpc-pless-001 rpc)" | |
# Deploy the CDK environment against a local l1 chain with pre-deployed zkevm contracts. | |
# TODO: Fix this job. | |
# pre-deployed-contracts: | |
# runs-on: ubuntu-latest | |
# timeout-minutes: 20 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: Install Kurtosis CDK tools | |
# uses: ./.github/actions/setup-kurtosis-cdk | |
# - 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 and zkEVM contracts | |
# run: | | |
# yq -Y --in-place '(.deploy_l1 = true) | (.deploy_zkevm_contracts_on_l1 = true)' params.yml | |
# yq -Y --in-place '.args.l1_seconds_per_slot = 1' params.yml # to speed up deployment | |
# kurtosis run --enclave=${{ env.ENCLAVE_NAME }} --args-file=params.yml . | |
# yq -Y --in-place '(.deploy_l1 = false) | (.deploy_zkevm_contracts_on_l1 = false)' params.yml # reset | |
# - name: Specify the rollup manager contract address and a few other parameters | |
# run: | | |
# zkevm_rollup_manager_address=$(kurtosis service exec ${{ env.ENCLAVE_NAME }} 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 ${{ env.ENCLAVE_NAME }} 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 ${{ env.ENCLAVE_NAME }} 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 ${{ env.ENCLAVE_NAME }} 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 ${{ env.ENCLAVE_NAME }} 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: | | |
# 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=${{ env.ENCLAVE_NAME }} --show-enclave-inspect=false --args-file=params.yml . | |
# - name: Inspect enclave | |
# run: kurtosis enclave inspect ${{ env.ENCLAVE_NAME }} | |
# - name: Monitor verified batches (CDK Erigon Permissionless RPC) | |
# working-directory: .github/scripts | |
# run: ./monitor-verified-batches.sh --rpc-url "$(kurtosis port print ${{ env.ENCLAVE_NAME }} cdk-erigon-node-001 rpc)" | |
# Deploy the CDK environment incrementally, stage by stage. | |
# TODO: Fix this job. | |
# incremental: | |
# runs-on: ubuntu-latest | |
# timeout-minutes: 20 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: Install Kurtosis CDK tools | |
# uses: ./.github/actions/setup-kurtosis-cdk | |
# - 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 | |
# yq -Y --in-place '.args.l1_seconds_per_slot = 1' params.yml # to speed up deployment | |
# kurtosis run --enclave=${{ env.ENCLAVE_NAME }} --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=${{ env.ENCLAVE_NAME }} --args-file=params.yml . | |
# 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=${{ env.ENCLAVE_NAME }} --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=${{ env.ENCLAVE_NAME }} --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=${{ env.ENCLAVE_NAME }} --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 ${{ env.ENCLAVE_NAME }} 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=${{ env.ENCLAVE_NAME }} --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=${{ env.ENCLAVE_NAME }} --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=${{ env.ENCLAVE_NAME }} --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=${{ env.ENCLAVE_NAME }} --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=${{ env.ENCLAVE_NAME }} --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=${{ env.ENCLAVE_NAME }} --args-file=params.yml . | |
# yq -Y --in-place '.apply_workload = false' params.yml # reset | |
# - name: Monitor verified batches (CDK Erigon Permissionless RPC) | |
# working-directory: .github/scripts | |
# run: ./monitor-verified-batches.sh --rpc-url "$(kurtosis port print ${{ env.ENCLAVE_NAME }} cdk-erigon-node-001 rpc)" |