Skip to content

Whf/add genesis

Whf/add genesis #683

Workflow file for this run

name: CI
on:
push:
branches:
- dev
pull_request:
branches:
- dev
types:
- opened
- reopened
- synchronize
- ready_for_review
workflow_dispatch:
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
strategy:
matrix:
os: [ ubuntu-20.04, macos-13 ] # list of os: https://github.com/actions/virtual-environments
runs-on: ${{ matrix.os }}
timeout-minutes: ${{ matrix.os == 'macos-14' && 40 || 30 }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.19'
- name: Install dependencies on Linux
if: runner.os == 'Linux'
run: sudo apt update && sudo apt install build-essential
- name: Build
run: make all
- name: Reproducible build test
run: |
make cdk-erigon
shasum -a256 ./build/bin/cdk-erigon > erigon1.sha256
make cdk-erigon
shasum -a256 ./build/bin/cdk-erigon > erigon2.sha256
if ! cmp -s erigon1.sha256 erigon2.sha256; then
echo >&2 "Reproducible build broken"; cat erigon1.sha256; cat erigon2.sha256; exit 1
fi
# - name: Lint
# if: runner.os == 'Linux'
# uses: golangci/golangci-lint-action@v4
# with:
# version: v1.54
- name: Test
run: make test
# kurtosis-cdk:
# runs-on: ubuntu-latest
# # TODO: Add "cdk-validium" once it's ready
# # strategy:
# # matrix:
# # da-mode: [ "rollup" ]
# steps:
# - name: Checkout cdk-erigon
# uses: actions/checkout@v4
# with:
# path: cdk-erigon
# - name: Checkout kurtosis-cdk
# uses: actions/checkout@v4
# with:
# repository: 0xPolygon/kurtosis-cdk
# ref: main
# path: kurtosis-cdk
# - name: Install Kurtosis CDK tools
# uses: ./kurtosis-cdk/.github/actions/setup-kurtosis-cdk
# - name: Install Foundry
# uses: foundry-rs/foundry-toolchain@v1
# - 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: Build docker image
# working-directory: ./cdk-erigon
# run: docker build -t cdk-erigon:local --file Dockerfile .
# - name: Configure Kurtosis CDK
# working-directory: ./kurtosis-cdk
# run: |
# /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
# /usr/local/bin/yq -i '.args.zkevm_bridge_service_image = "hermeznetwork/zkevm-bridge-service:v0.5.0-RC8"' cdk-erigon-sequencer-params.yml
# - name: Deploy Kurtosis CDK package
# working-directory: ./kurtosis-cdk
# run: kurtosis run --enclave cdk-v1 --args-file cdk-erigon-sequencer-params.yml --image-download always .
# - name: Override gas limit for test transactions
# working-directory: ./kurtosis-cdk
# run: |
# sed -i 's/--gas-limit [0-9]*/--gas-limit 100000/gi' .github/actions/monitor-cdk-verified-batches/batch_verification_monitor.sh
# - name: Monitor verified batches
# working-directory: ./kurtosis-cdk
# shell: bash
# run: .github/actions/monitor-cdk-verified-batches/batch_verification_monitor.sh 20 900 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: Fund claim tx manager
# run: |
# cast send --legacy --private-key "0x12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625" --value 5ether 0x5f5dB0D4D58310F53713eF4Df80ba6717868A9f8 --gas-limit 50000 --rpc-url $L2_RPC_URL
# - 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
# run: |
# #!/bin/bash
# cd bridge
# mkdir tmp
# cat <<EOF > ./tmp/test.toml
# TestL1AddrPrivate="0x12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625"
# TestL2AddrPrivate="0x12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625"
# [ConnectionConfig]
# L1NodeURL="${ETH_RPC_URL}"
# L2NodeURL="${L2_RPC_URL}"
# BridgeURL="${BRIDGE_API_URL}"
# L1BridgeAddr="${BRIDGE_ADDRESS}"
# L2BridgeAddr="${BRIDGE_ADDRESS}"
# EOF
# docker run --network=host --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
# if: failure()
# run: |
# mkdir -p ci_logs
# cd ci_logs
# kurtosis service logs cdk-v1 cdk-erigon-node-001 --all > cdk-erigon-node-001.log
# kurtosis service logs cdk-v1 cdk-erigon-sequencer-001 --all > cdk-erigon-sequencer-001.log
# kurtosis service logs cdk-v1 zkevm-agglayer-001 --all > zkevm-agglayer-001.log
# kurtosis service logs cdk-v1 zkevm-prover-001 --all > zkevm-prover-001.log
# kurtosis service logs cdk-v1 zkevm-executor-pless-001 --all > zkevm-executor-pless-001.log
# - name: Upload logs
# if: failure()
# uses: actions/upload-artifact@v3
# with:
# name: logs_${{ github.run_id }}
# path: ./kurtosis-cdk/ci_logs
test-e2e:
strategy:
fail-fast: false
matrix:
go-version: [ 1.20.x ]
goarch: [ "amd64" ]
e2e-group: [ 1 ]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Go
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
env:
GOARCH: ${{ matrix.goarch }}
- name: Build Docker
run: make build-docker
- name: Test
run: make test-${{ matrix.e2e-group }}
working-directory: test