Add bridge test to CI #27
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: CI | |
on: | |
push: | |
branches: | |
- zkevm | |
pull_request: | |
branches: | |
- zkevm | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- ready_for_review | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
strategy: | |
matrix: | |
os: [ ubuntu-20.04, macos-14 ] # 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 | |
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: feat/cdk-erigon-zkevm | |
path: kurtosis-cdk | |
- name: Install Kurtosis CDK tools | |
uses: ./kurtosis-cdk/.github/actions/setup-kurtosis-cdk | |
- name: Build docker image | |
working-directory: ./cdk-erigon | |
run: docker build -t cdk-erigon:local --file Dockerfile . | |
- 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: | | |
/usr/local/bin/yq -i '.args.data_availability_mode = "rollup"' params.yml | |
/usr/local/bin/yq -i '.args.cdk_erigon_node_image = "cdk-erigon:local"' params.yml | |
- name: Deploy Kurtosis CDK package | |
working-directory: ./kurtosis-cdk | |
run: kurtosis run --enclave cdk-v1 --args-file 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: 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 "BRIDGE_API_URL=$(kurtosis port print cdk-v1 zkevm-bridge-service-001 rpc)" >> $GITHUB_ENV | |
- name: Run bridge tests | |
working-directory: ./cdk-erigon | |
env: | |
RAW_PRIVATE_KEY: "0x12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625" | |
DESTINATION_NET: "10101" | |
DESTINATION_ADDRESS: "0xE34aaF64b29273B7D567FCFc40544c014EEe9970" | |
ETHER_VALUE: "2" | |
TOKEN_ADDRESS: "" | |
IS_FORCED: "true" | |
BRIDGE_ADDRESS: ${{ env.BRIDGE_ADDRESS }} | |
META_BYTES: "0x" | |
ETH_RPC_URL: ${{ env.ETH_RPC_URL }} | |
BRIDGE_API_URL: ${{ env.BRIDGE_API_URL }} | |
DRY_RUN: "false" | |
run: | |
cd zk/tests/ansible/evm-rpc-tests && docker-compose up --build | |
- 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 | |
- name: Upload logs | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logs_${{ github.run_id }} | |
path: ./kurtosis-cdk/ci_logs |