From 0995c824fe2935e238aea89f30f6d302491ed14f Mon Sep 17 00:00:00 2001 From: Jerry Date: Tue, 25 Jun 2024 15:08:31 -0700 Subject: [PATCH] Add bridge test to CI --- .github/workflows/ci_zkevm.yml | 71 ++++++++++++++++++++++++++---- zk/tests/bridge/docker-compose.yml | 4 +- 2 files changed, 66 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci_zkevm.yml b/.github/workflows/ci_zkevm.yml index daea0279e52..965b58175a5 100644 --- a/.github/workflows/ci_zkevm.yml +++ b/.github/workflows/ci_zkevm.yml @@ -67,7 +67,7 @@ jobs: uses: actions/checkout@v4 with: repository: 0xPolygon/kurtosis-cdk - ref: feat/cdk-erigon-zkevm + ref: main path: kurtosis-cdk - name: Install Kurtosis CDK tools @@ -77,20 +77,75 @@ jobs: working-directory: ./cdk-erigon run: docker build -t cdk-erigon:local --file Dockerfile . + - name: Install sed + run: sudo apt-get install sed + + - name: Install yq + run: | + sudo curl -L https://github.com/mikefarah/yq/releases/download/v4.44.2/yq_linux_amd64 -o /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + /usr/local/bin/yq --version + - name: Configure Kurtosis CDK working-directory: ./kurtosis-cdk run: | - yq -Y --in-place '.args.data_availability_mode = "rollup"' params.yml - yq -Y --in-place '.args.cdk_erigon_node_image = "cdk-erigon:local"' params.yml + /usr/local/bin/yq -i '.args.data_availability_mode = "rollup"' cdk-erigon-sequencer-params.yml + /usr/local/bin/yq -i '.args.cdk_erigon_node_image = "cdk-erigon:local"' cdk-erigon-sequencer-params.yml - name: Deploy Kurtosis CDK package working-directory: ./kurtosis-cdk - run: kurtosis run --enclave cdk-v1 --args-file params.yml --image-download always . + run: kurtosis run --enclave cdk-v1 --args-file cdk-erigon-sequencer-params.yml --image-download always . - - name: Monitor verified batches - working-directory: ./kurtosis-cdk - shell: bash - run: .github/actions/monitor-cdk-verified-batches/batch_verification_monitor.sh 20 600 cdk-erigon-node-001 + # - name: Monitor verified batches + # working-directory: ./kurtosis-cdk + # shell: bash + # run: .github/actions/monitor-cdk-verified-batches/batch_verification_monitor.sh 20 600 cdk-erigon-node-001 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Set up envs + run: | + kurtosis files download cdk-v1 bridge-config-artifact + echo "BRIDGE_ADDRESS=$(/usr/local/bin/yq '.NetworkConfig.PolygonBridgeAddress' bridge-config-artifact/bridge-config.toml)" >> $GITHUB_ENV + echo "ETH_RPC_URL=$(kurtosis port print cdk-v1 el-1-geth-lighthouse rpc)" >> $GITHUB_ENV + echo "L2_RPC_URL=$(kurtosis port print cdk-v1 cdk-erigon-node-001 http-rpc)" >> $GITHUB_ENV + echo "BRIDGE_API_URL=$(kurtosis port print cdk-v1 zkevm-bridge-service-001 rpc)" >> $GITHUB_ENV + + - name: Clone bridge repository + run: git clone --recurse-submodules -j8 https://github.com/0xPolygonHermez/zkevm-bridge-service.git -b develop bridge + + - name: Build docker image + run: | + cd bridge + make build-docker-e2e-real_network + + - name: Run test ERC20 Bridge + env: + BRIDGE_ADDRESS: ${{ env.BRIDGE_ADDRESS }} + ETH_RPC_URL: ${{ env.ETH_RPC_URL }} + L2_RPC_URL: ${{ env.L2_RPC_URL }} + BRIDGE_API_URL: ${{ env.BRIDGE_API_URL }} + run: | + #!/bin/bash + cd bridge + mkdir tmp + cat < ./tmp/test.toml + TestAddrPrivate= "0x12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625" + [ConnectionConfig] + L1NodeURL="${ETH_RPC_URL}" + L2NodeURL="${L2_RPC_URL}" + BridgeURL="${BRIDGE_API_URL}" + L1BridgeAddr="${BRIDGE_ADDRESS}" + L2BridgeAddr="${BRIDGE_ADDRESS}" + EOF + docker run --volume "./tmp/:/config/" --env BRIDGE_TEST_CONFIG_FILE=/config/test.toml bridge-e2e-realnetwork-erc20 + + - name: Upload logs + uses: actions/upload-artifact@v3 + with: + name: evm-rpc-tests-logs-${{ github.run_id }} + path: ./cdk-erigon/logs/evm-rpc-tests.log - name: Prepare logs working-directory: ./kurtosis-cdk diff --git a/zk/tests/bridge/docker-compose.yml b/zk/tests/bridge/docker-compose.yml index 47d31dfb2d1..d7ff846cb16 100644 --- a/zk/tests/bridge/docker-compose.yml +++ b/zk/tests/bridge/docker-compose.yml @@ -14,4 +14,6 @@ services: META_BYTES: ${META_BYTES} ETH_RPC_URL: ${ETH_RPC_URL} BRIDGE_API_URL: ${BRIDGE_API_URL} - DRY_RUN: ${DRY_RUN} \ No newline at end of file + DRY_RUN: ${DRY_RUN} + + network_mode: "host" \ No newline at end of file