Skip to content

Regression Tests - Superuser #4

Regression Tests - Superuser

Regression Tests - Superuser #4

name: REGRESSION TESTER - SUPERUSERS
on:
workflow_dispatch:
inputs:
zkevm_agglayer_commit_id:
description: '0xPolygon/agglayer (commit id)'
required: true
zkevm_bridge_service_commit_id:
description: '0xPolygonHermez/zkevm-bridge-service (commit id)'
required: true
zkevm_bridge_ui_commit_id:
description: '0xPolygonHermez/zkevm-bridge-ui (commit id)'
required: true
zkevm_dac_commit_id:
description: '0xPolygon/cdk-data-availability (commit id)'
required: true
zkevm_node_commit_id:
description: '0xPolygon/cdk-validium-node (commit id)'
required: true
zkevm_prover_commit_id:
description: '0xPolygonHermez/zkevm-prover (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: Clone internal kurtosis-cdk repo
run: |
git clone https://github.com/0xPolygon/kurtosis-cdk.git
cd kurtosis-cdk
git checkout dan/jit_containers_superusers
- 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: Clone and build zkevm-bridge-service
run: |
git clone https://github.com/0xPolygonHermez/zkevm-bridge-service.git
cd zkevm-bridge-service
git checkout "${{ github.event.inputs.zkevm_bridge_service_commit_id }}"
docker build -t zkevm-bridge-service:local -f ./Dockerfile .
sleep 10
- name: Clone and build zkevm-bridge-ui
run: |
git clone https://github.com/0xPolygonHermez/zkevm-bridge-ui.git
cd zkevm-bridge-ui
git checkout "${{ github.event.inputs.zkevm_bridge_ui_commit_id }}"
docker build -t zkevm-bridge-ui:local -f ./Dockerfile .
sleep 10
- name: Clone and build cdk-data-availability
run: |
git clone https://github.com/0xPolygon/cdk-data-availability.git
cd cdk-data-availability
git checkout "${{ github.event.inputs.zkevm_dac_commit_id }}"
docker build -t cdk-data-availability:local -f ./Dockerfile .
sleep 10
- name: Clone and build cdk-validium-node
run: |
git clone https://github.com/0xPolygon/cdk-validium-node.git
cd cdk-validium-node
git checkout "${{ github.event.inputs.zkevm_node_commit_id }}"
docker build -t cdk-validium-node:local -f ./Dockerfile .
sleep 10
- name: Clone and build zkevm-prover
run: |
git clone https://github.com/0xPolygonHermez/zkevm-prover.git
cd zkevm-prover
git checkout "${{ github.event.inputs.zkevm_prover_commit_id }}"
docker build -t zkevm-prover:local -f ./Dockerfile-GHA .
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: Auto-apply load and report any regressions here
run: |
MONITOR_ID="140974014" # K8S DEVNET: COMPOSITE MONITOR ID
DATADOG_API_KEY="${{ secrets.DATADOG_API_KEY }}"
DATADOG_APP_KEY="${{ secrets.DATADOG_APP_KEY }}"
bake_time="${{ github.event.inputs.bake_time }}"
end_minute=$(( $(date +'%M') + bake_time))
while [ $(date +'%M') -lt $end_minute ]; do
STATUS=$(curl -X GET "https://api.datadoghq.com/api/v1/monitor/${MONITOR_ID}" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DATADOG_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DATADOG_APP_KEY}" \
-s \
| jq -r '.overall_state')
echo "K8S DEVNET HEALTH STATUS: $STATUS"
echo "Review your devnet health dashboard here: https://app.datadoghq.com/dashboard/fqu-nh2-bzd?fromUser=false&refresh_mode=sliding&view=spans&from_ts=1709886652761&to_ts=1709890252761&live=true"
sleep 60
done
- name: Finally, remove all devnet resources locally
run: |
cd kurtosis-cdk
kurtosis clean -a