Skip to content

Nightly Coordinator E2E Tests #272

Nightly Coordinator E2E Tests

Nightly Coordinator E2E Tests #272

name: Nightly Coordinator E2E Tests
on:
workflow_dispatch:
schedule:
- cron: 0 2 * * *
env:
NODE_OPTIONS: "--max-old-space-size=8192"
TTL: ${{ vars.COORDINATOR_TTL }}
LIMIT: ${{ vars.COORDINATOR_LIMIT }}
COORDINATOR_PUBLIC_KEY_PATH: ${{ vars.COORDINATOR_PUBLIC_KEY_PATH }}
COORDINATOR_PRIVATE_KEY_PATH: ${{ vars.COORDINATOR_PRIVATE_KEY_PATH }}
COORDINATOR_MACI_PRIVATE_KEY: ${{ secrets.COORDINATOR_MACI_PRIVATE_KEY }}
COORDINATOR_TALLY_ZKEY_NAME: ${{ vars.COORDINATOR_TALLY_ZKEY_NAME }}
COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME: ${{ vars.COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME }}
COORDINATOR_POLL_JOINING_ZKEY_NAME: ${{ vars.COORDINATOR_POLL_JOINING_ZKEY_NAME }}
COORDINATOR_POLL_JOINED_ZKEY_NAME: ${{ vars.COORDINATOR_POLL_JOINED_ZKEY_NAME }}
COORDINATOR_RAPIDSNARK_EXE: ${{ vars.COORDINATOR_RAPIDSNARK_EXE }}
COORDINATOR_ZKEY_PATH: "../../zkeys"
COORDINATOR_RPC_URL: "http://localhost:8545"
COORDINATOR_ADDRESSES: ${{ vars.COORDINATOR_ADDRESSES }}
COORDINATOR_ALLOWED_ORIGINS: ${{ vars.COORDINATOR_ALLOWED_ORIGINS }}
COORDINATOR_REDIS_HOST: ${{ vars.COORDINATOR_REDIS_HOST }}
COORDINATOR_REDIS_PORT: ${{ vars.COORDINATOR_REDIS_PORT }}
COORDINATOR_PORT: ${{ vars.COORDINATOR_PORT }}
SUBGRAPH_NAME: ${{ vars.COORDINATOR_SUBGRAPH_NAME }}
SUBGRAPH_PROVIDER_URL: ${{ vars.COORDINATOR_SUBGRAPH_PROVIDER_URL }}
SUBGRAPH_DEPLOY_KEY: ${{ secrets.COORDINATOR_SUBGRAPH_DEPLOY_KEY }}
SUBGRAPH_FOLDER: ${{ vars.COORDINATOR_SUBGRAPH_FOLDER }}
ZERODEV_BUNDLER_RPC_OP_SEPOLIA: ${{ secrets.COORDINATOR_ZERODEV_BUNDLER_RPC_OP_SEPOLIA }}
MNEMONIC: ${{ secrets.COORDINATOR_TEST_MNEMONIC }}
jobs:
build-and-test:
runs-on: ubuntu-24.04
services:
redis:
image: redis:8
ports:
- 6379:6379
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
with:
version: 9
- name: Use Node.js 20
uses: actions/setup-node@v6
with:
node-version: 20
cache: "pnpm"
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --yes \
build-essential \
libgmp-dev \
libsodium-dev \
nasm \
nlohmann-json3-dev
- name: Install
run: |
pnpm install --frozen-lockfile --prefer-offline
- name: Build
run: |
pnpm run build
- name: Download rapidsnark (1c137)
run: |
mkdir -p ~/rapidsnark/build
wget -qO ~/rapidsnark/build/prover https://maci-devops-zkeys.s3.ap-northeast-2.amazonaws.com/rapidsnark-linux-amd64-1c137
chmod +x ~/rapidsnark/build/prover
- name: Download zkeys
run: |
pnpm download-zkeys:test
- name: Generate RSA Keypair
working-directory: apps/coordinator
run: |
pnpm run generate-keypair
- name: Run hardhat
run: |
pnpm run hardhat &
sleep 5
working-directory: apps/coordinator
- name: Run E2E tests
working-directory: apps/coordinator
run: |
pnpm run test:e2e
- name: Stop Hardhat
if: always()
run: kill $(lsof -t -i:8545)
- name: Notify on failure
if: ${{ always() && (failure() || cancelled()) }}
run: |
curl -X POST -H 'Content-Type: application/json' \
-d '{"text": ":x: GitHub Actions job *${{ github.workflow }}* failed in *${{ github.repository }}* on branch *${{ github.ref }}*. [View run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})"}' \
${{ secrets.WEBHOOK_URL }}