Skip to content

Merge branch 'polytope-labs:main' into main #1

Merge branch 'polytope-labs:main' into main

Merge branch 'polytope-labs:main' into main #1

Workflow file for this run

name: "@hyperbridge/sdk"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
on:
push:
branches: [main]
paths:
- "sdk/packages/sdk/**"
- "sdk/packages/indexer/**"
- "sdk/packages/simplex/**"
- ".github/workflows/test-sdk.yml"
pull_request:
branches: [main]
types: [opened, synchronize, reopened, ready_for_review]
paths:
- "sdk/packages/sdk/**"
- "sdk/packages/indexer/**"
- "sdk/packages/simplex/**"
- ".github/workflows/test-sdk.yml"
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: sdk
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 11
- name: Install dependencies
run: pnpm install
- name: Set up environment variables
run: |
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 }}
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 }}
BASE_SEPOLIA=${{ secrets.BASE_SEPOLIA }}
POLYGON_AMOY=${{ secrets.POLYGON_AMOY }}
SEPOLIA=${{ secrets.SEPOLIA }}
BUNDLER_URL=${{ secrets.BUNDLER_URL }}
COIN_GECKGO_API_KEY=${{secrets.COINGECKO}}
TOKEN_GATEWAY_ADDRESS: "0xFcDa26cA021d5535C3059547390E6cCd8De7acA6"
TURNKEY_ORG_ID=${{ secrets.TURNKEY_ORG_ID }}
TURNKEY_API_PUBLIC_KEY=${{ secrets.TURNKEY_API_PUBLIC_KEY }}
TURNKEY_API_PRIVATE_KEY=${{ secrets.TURNKEY_API_PRIVATE_KEY }}
TURNKEY_SIGN_WITH=${{ secrets.TURNKEY_SIGN_WITH }}
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: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
- 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
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
- name: Run SDK test - hyper-fungible-token
run: pnpm --filter="@hyperbridge/sdk" test:hyper-fungible-token
- name: Run SDK test - intents-coprocessor
run: pnpm --filter="@hyperbridge/sdk" test:intents-coprocessor
- name: Run simplex test
run: pnpm --filter="@hyperbridge/simplex" test:filler
- name: Run SDK test - concurrent (non-sequential tests)
run: pnpm --filter="@hyperbridge/sdk" test:concurrent
- name: Run SDK test - intent-gateway
run: pnpm --filter="@hyperbridge/sdk" test:intent-gateway
- name: Clean up
if: always()
run: |
docker compose -f packages/indexer/docker/docker-compose.local.yml down || true
if [ -f packages/indexer/indexer_output.log ]; then
echo "Indexer logs:"
cat packages/indexer/indexer_output.log
fi