This repository has been archived by the owner on Sep 23, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feature: e2e regression testing tool
- Loading branch information
1 parent
c0a88f1
commit feeee91
Showing
1 changed file
with
93 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
name: REGRESSION TESTER - AGGLAYER | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
zkevm_agglayer_commit_id: | ||
description: '0xPolygon/agglayer (commit id)' | ||
required: true | ||
bake_time: | ||
description: 'bake time (minutes)' | ||
required: true | ||
|
||
jobs: | ||
deploy_devnet: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v2 | ||
with: | ||
ref: ${{ github.event.before }} | ||
|
||
- name: Set up Docker | ||
uses: docker/setup-buildx-action@v1 | ||
|
||
- 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: Clone and build agglayer | ||
run: | | ||
git clone https://github.com/0xPolygon/agglayer.git | ||
cd agglayer | ||
git checkout "${{ github.event.inputs.zkevm_agglayer_commit_id }}" | ||
docker compose -f docker/docker-compose.yaml build --no-cache agglayer | ||
sleep 10 | ||
- 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 | ||
run: | | ||
kurtosis gateway & # Run cmd in background | ||
sleep 10 | ||
- 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)" | ||
greater_than_zero=false | ||
while [ $(date +'%M') -lt $end_minute ]; do | ||
# Attempt connecting to service | ||
if STATUS=$(cast rpc zkevm_verifiedBatchNumber 2>/dev/null); then | ||
# Convert hexadecimal to decimal | ||
DEC_STATUS=$(printf "%d" "$STATUS") | ||
echo "ZKEVM_VERIFIED_BATCH_NUMBER: $DEC_STATUS" | ||
# Check if STATUS is greater than 0 | ||
if [ $DEC_STATUS -gt 0 ]; then | ||
greater_than_zero=true | ||
fi | ||
else | ||
echo "Failed to connect, waiting and retrying..." | ||
sleep 60 | ||
continue | ||
fi | ||
sleep 60 | ||
done | ||
# Check that zkevm_verifiedBatchNumber increments, indicating e2e success | ||
if ! $greater_than_zero; then | ||
echo "zkevm_verifiedBatchNumber failed to increment past 0. marking CI job failed accordingly" | ||
exit 1 | ||
fi | ||
- name: Finally, remove all devnet resources locally | ||
run: | | ||
cd kurtosis-cdk | ||
kurtosis clean -a |