This repository has been archived by the owner on Sep 23, 2024. It is now read-only.
feature: e2e regression testing tool #6
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: Regression Tests - Auto Merge to Main | |
'on': | |
pull_request: | |
types: [opened, synchronize] # Trigger on new pull requests and when existing ones are synchronized | |
branches: | |
- main | |
inputs: | |
bake_time: | |
description: bake time (minutes) | |
required: false | |
default: 20 | |
jobs: | |
deploy_devnet: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.sha }} | |
- name: Set up Docker | |
uses: docker/setup-buildx-action@v1 | |
- name: Clone and build agglayer image locally | |
run: | | |
git clone https://github.com/0xPolygon/agglayer.git | |
cd agglayer | |
git checkout ${CI_COMMIT_SHA:0:8} | |
echo ${CI_COMMIT_SHA:0:8} | |
echo "Containerizing and testing commit: ${CI_COMMIT_SHA:0:8}" | |
docker compose -f docker/docker-compose.yaml build --no-cache agglayer | |
- name: Install Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
- name: Clone internal kurtosis-cdk repo | |
run: | | |
git clone https://github.com/0xPolygon/kurtosis-cdk.git | |
cd kurtosis-cdk | |
git checkout dan/jit_containers | |
- name: Install kurtosis | |
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 | |
- name: Run kurtosis agent in background, may remove | |
run: | | |
kurtosis gateway & # Run cmd in background | |
- name: Deploy CDK devnet on local github runner | |
run: | | |
cd kurtosis-cdk | |
kurtosis engine restart | |
kurtosis run --enclave cdk-v1 --args-file params.yml . | |
- name: Monitor and report any potential regressions to CI logs | |
run: | | |
bake_time="${{ github.event.inputs.bake_time }}" | |
end_minute=$(( $(date +'%M') + bake_time)) | |
export ETH_RPC_URL="$(kurtosis port print cdk-v1 zkevm-node-rpc-001 http-rpc)" | |
INITIAL_STATUS=$(cast rpc zkevm_verifiedBatchNumber 2>/dev/null) | |
incremented=false | |
while [ $(date +'%M') -lt $end_minute ]; do | |
# Attempt to connect to the service | |
if STATUS=$(cast rpc zkevm_verifiedBatchNumber 2>/dev/null); then | |
echo "ZKEVM_VERIFIED_BATCH_NUMBER: $STATUS" | |
# Check if STATUS has incremented | |
if [ "$STATUS" != "$INITIAL_STATUS" ]; then | |
incremented=true | |
echo "ZKEVM_VERIFIED_BATCH_NUMBER successfully incremented to $STATUS. Exiting..." | |
exit 0 | |
fi | |
else | |
echo "Failed to connect, waiting and retrying..." | |
sleep 60 | |
continue | |
fi | |
sleep 60 | |
done | |
if ! $incremented; then | |
echo "ZKEVM_VERIFIED_BATCH_NUMBER did not increment. This may indicate chain experienced a regression. Please investigate." | |
exit 1 | |
fi | |
- name: Finally, remove all devnet resources locally | |
run: | | |
cd kurtosis-cdk | |
kurtosis clean -a |