Skip to content
This repository was archived by the owner on Mar 11, 2026. It is now read-only.

[filler-v2, sdk, indexer]: fx strategy, intentsV2 refactor, partial fills indexing #1251

[filler-v2, sdk, indexer]: fx strategy, intentsV2 refactor, partial fills indexing

[filler-v2, sdk, indexer]: fx strategy, intentsV2 refactor, partial fills indexing #1251

Workflow file for this run

name: "@hyperbridge/sdk"
# Cancel running workflows from the same PR
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
on:
push:
branches: [main]
paths:
- "packages/sdk/**"
- "packages/indexer/**"
- "packages/filler/**"
- ".github/workflows/test-sdk.yml"
pull_request:
branches: [main]
paths:
- "packages/sdk/**"
- "packages/indexer/**"
- "packages/filler/**"
- ".github/workflows/test-sdk.yml"
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: "7"
- name: Install dependencies
run: pnpm install
- name: Set up environment variables
run: |
# Set up environment variables from secrets
cat > .env.local << EOF
BSC_CHAPEL=${{ secrets.BSC_CHAPEL }}
GNOSIS_CHIADO=${{ secrets.GNOSIS_CHIADO }}
HYPERBRIDGE_GARGANTUA=${{ secrets.HYPERBRIDGE_GARGANTUA }}
PASEO_RPC_URL=${{ secrets.PASEO_RPC_URL }}
BIFROST_PASEO=${{ secrets.BIFROST_PASEO }}
CERE_LOCAL=${{ secrets.CERE_RPC_URL }}
INDEXER_URL=${{ secrets.INDEXER_URL }}
PRIVATE_KEY=${{ secrets.PRIVATE_KEY }}
SECRET_PHRASE=${{ secrets.SECRET_PHRASE }}
ETH_MAINNET=${{ secrets.ETH_MAINNET }}
BSC_MAINNET=${{ secrets.BSC_MAINNET }}
BASE_MAINNET=${{ secrets.BASE_MAINNET }}
POLYGON_MAINNET=${{ secrets.POLYGON_MAINNET }}
ARBITRUM_MAINNET=${{ secrets.ARBITRUM_MAINNET }}
ARBITRUM_SEPOLIA=${{ secrets.ARBITRUM_SEPOLIA }}
POLYGON_AMOY=${{ secrets.POLYGON_AMOY }}
SEPOLIA=${{ secrets.SEPOLIA }}
BUNDLER_URL=${{ secrets.BUNDLER_URL }}
COIN_GECKGO_API_KEY=${{secrets.COINGECKO}}
PING_MODULE_ADDRESS: "0xFE9f23F0F2fE83b8B9576d3FC94e9a7458DdDD35"
TOKEN_GATEWAY_ADDRESS: "0xFcDa26cA021d5535C3059547390E6cCd8De7acA6"
EOF
- name: Build packages
run: pnpm build
env:
ENV: local
- name: Install Docker Compose
run: |
sudo apt-get update
sudo apt-get install -y docker-compose
docker compose version
- name: Start local indexer (in background)
env:
DB_USER: "postgres"
DB_PASS: "postgres"
DB_DATABASE: "postgres"
DB_HOST: "postgres"
DB_PORT: 5432
DB_PATH: "./.indexer"
LOG_LEVEL: ${{ secrets.ACTIONS_RUNNER_DEBUG == 'true' && 'debug' || 'info' }}
run: |
cd packages/indexer
nohup pnpm start:local > indexer_output.log 2>&1 &
echo "Started indexer process in background"
- name: Wait for GraphQL server to be available
run: |
echo "Waiting for GraphQL server to be available on port 3100..."
timeout=300 # 5 minutes timeout
elapsed=0
interval=5
while ! nc -z localhost 3100; do
if [ "$elapsed" -ge "$timeout" ]; then
echo "Timed out waiting for GraphQL server on port 3100"
cat packages/indexer/indexer_output.log
exit 1
fi
echo "Waiting for GraphQL server (elapsed: ${elapsed}s)..."
sleep $interval
elapsed=$((elapsed + interval))
done
echo "GraphQL server is available!"
sleep 10 # Give it a few more seconds to fully initialize
- name: Run SDK test - intents-coprocessor
run: pnpm --filter="@hyperbridge/sdk" test:intents-coprocessor
- name: Run filler-v2 test - filler
run: pnpm --filter="@hyperbridge/filler-v2" test:filler
- name: Run SDK test - concurrent (non-sequential tests)
run: pnpm --filter="@hyperbridge/sdk" test:concurrent
- name: Run SDK test - requests
run: pnpm --filter="@hyperbridge/sdk" test:requests
- name: Run SDK test - hyperbridge
run: cd packages/sdk && pnpm vitest --watch=false --sequence.concurrent=false src/tests/sequential/hyperbridge.test.ts
- name: Run SDK test - intent-gateway
run: pnpm --filter="@hyperbridge/sdk" test:intent-gateway
# - name: Run filler-v2 test - cctp
# run: cd packages/filler-v2 && pnpm vitest --watch=false --maxConcurrency=1 src/tests/rebalancers/cctp.test.ts
# - name: Run Intent Filler tests
# run: pnpm --filter="filler" test
- name: Clean up
if: always()
run: |
# Stop any containers started by the indexer
docker compose -f packages/indexer/docker/docker-compose.local.yml down || true
# Show logs in case of failure
if [ -f packages/indexer/indexer_output.log ]; then
echo "Indexer logs:"
cat packages/indexer/indexer_output.log
fi