Skip to main content
Glama
e2e.yml6.76 kB
on: schedule: - cron: '0 6 * * 1-5' # runs every morning Mon-Fri at 6AM UTC pull_request: types: [labeled] workflow_dispatch: name: E2E concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: e2e: name: E2E timeout-minutes: 120 # Ensures the job never runs longer than 2 hours if: ${{ github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'e2e') || github.event_name == 'workflow_dispatch' }} runs-on: namespace-profile-sdk steps: - name: Setup 1Password uses: 1password/load-secrets-action/configure@13f58eec611f8e5db52ec16247f58c508398f3e6 # v3 with: service-account-token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Load secrets uses: 1password/load-secrets-action@13f58eec611f8e5db52ec16247f58c508398f3e6 # v3 with: export-env: true env: E2E_GITHUB_TOKEN: "op://platform/SDK E2E/github-token" SETTLEMINT_ACCESS_TOKEN_E2E_TESTS: "op://platform/SDK E2E/pat-token" SETTLEMINT_INSTANCE: "op://platform/SDK E2E/instance" DISABLE_CONCURRENT_DEPLOYMENT: "op://platform/SDK E2E/disable-concurrent-deployment" SLACK_WEBHOOK_URL: "op://platform/SDK E2E/e2e-slack-webhook" - name: Checkout repository uses: namespacelabs/nscloud-checkout-action@0c5e6ce59a41299aba2ad91baa0126f1bfde8e5c # v8 - name: Setup caches uses: namespacelabs/nscloud-cache-action@446d8f390563cd54ca27e8de5bdb816f63c0b706 # v1 with: path: | ./.turbo ~/.bun/install/cache - name: Setup Bun uses: oven-sh/setup-bun@735343b667d3e6f658f44d0eca948eb6282f2b76 # v2 with: bun-version-file: .bun-version - name: Install Node.js uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version-file: package.json token: ${{ secrets.GITHUB_TOKEN }} - name: Setup git user run: | git config --global user.name "$(git --no-pager log --format=format:'%an' -n 1)" git config --global user.email "$(git --no-pager log --format=format:'%ae' -n 1)" - name: Setup Foundry uses: foundry-rs/foundry-toolchain@8b0419c685ef46cb79ec93fbdc131174afceb730 # v1 - name: Install Node Gyp run: bun install -g node-gyp - name: Install Bun dependencies run: bun install - name: Run build run: bunx turbo build - name: Run the E2E tests id: e2e run: bun test:e2e env: DISABLE_CONCURRENT_DEPLOYMENT: ${{ env.DISABLE_CONCURRENT_DEPLOYMENT }} DISABLE_WORKSPACE_DELETE: true SETTLEMINT_ACCESS_TOKEN_E2E_TESTS: ${{ env.SETTLEMINT_ACCESS_TOKEN_E2E_TESTS }} SETTLEMINT_INSTANCE: ${{ env.SETTLEMINT_INSTANCE }} SETTLEMINT_WORKSPACE: ${{ secrets.SETTLEMINT_WORKSPACE }} SETTLEMINT_APPLICATION: ${{ secrets.SETTLEMINT_APPLICATION }} SETTLEMINT_BLOCKCHAIN_NETWORK: ${{ secrets.SETTLEMINT_BLOCKCHAIN_NETWORK }} SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: ${{ secrets.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID }} SETTLEMINT_BLOCKCHAIN_NODE: ${{ secrets.SETTLEMINT_BLOCKCHAIN_NODE }} SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: ${{ secrets.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER }} SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: ${{ secrets.SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT }} SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT: ${{ secrets.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT }} SETTLEMINT_IPFS: ${{ secrets.SETTLEMINT_IPFS }} SETTLEMINT_IPFS_API_ENDPOINT: ${{ secrets.SETTLEMINT_IPFS_API_ENDPOINT }} SETTLEMINT_IPFS_GATEWAY_ENDPOINT: ${{ secrets.SETTLEMINT_IPFS_GATEWAY_ENDPOINT }} SETTLEMINT_IPFS_PINNING_ENDPOINT: ${{ secrets.SETTLEMINT_IPFS_PINNING_ENDPOINT }} SETTLEMINT_MINIO: ${{ secrets.SETTLEMINT_MINIO }} SETTLEMINT_MINIO_ACCESS_KEY: ${{ secrets.SETTLEMINT_MINIO_ACCESS_KEY }} SETTLEMINT_MINIO_ENDPOINT: ${{ secrets.SETTLEMINT_MINIO_ENDPOINT }} SETTLEMINT_MINIO_SECRET_KEY: ${{ secrets.SETTLEMINT_MINIO_SECRET_KEY }} SETTLEMINT_BLOCKSCOUT: ${{ secrets.SETTLEMINT_BLOCKSCOUT }} SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: ${{ secrets.SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT }} SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: ${{ secrets.SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT }} SETTLEMINT_PORTAL: ${{ secrets.SETTLEMINT_PORTAL }} SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT: ${{ secrets.SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT }} SETTLEMINT_PORTAL_REST_ENDPOINT: ${{ secrets.SETTLEMINT_PORTAL_REST_ENDPOINT }} SETTLEMINT_PORTAL_WS_ENDPOINT: ${{ secrets.SETTLEMINT_PORTAL_WS_ENDPOINT }} SETTLEMINT_THEGRAPH: ${{ secrets.SETTLEMINT_THEGRAPH }} SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS: ${{ secrets.SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS }} SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH: ${{ secrets.SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH }} SETTLEMINT_HASURA: ${{ secrets.SETTLEMINT_HASURA }} SETTLEMINT_HASURA_ENDPOINT: ${{ secrets.SETTLEMINT_HASURA_ENDPOINT }} SETTLEMINT_HASURA_ADMIN_SECRET: ${{ secrets.SETTLEMINT_HASURA_ADMIN_SECRET }} SETTLEMINT_HASURA_DATABASE_URL: ${{ secrets.SETTLEMINT_HASURA_DATABASE_URL }} SETTLEMINT_HD_PRIVATE_KEY: ${{ secrets.SETTLEMINT_HD_PRIVATE_KEY }} SETTLEMINT_HD_PRIVATE_KEY_FORWARDER_ADDRESS: ${{ secrets.SETTLEMINT_HD_PRIVATE_KEY_FORWARDER_ADDRESS }} - name: Save workspace config if: ${{ !cancelled() }} run: | echo $E2E_GITHUB_TOKEN | gh auth login --with-token gh secret set -f .env sed '/SETTLEMINT_ACCESS_TOKEN/d' .env.local > .env.local.tmp mv .env.local.tmp .env.local if [ -s .env.local ]; then gh secret set -f .env.local fi env: E2E_GITHUB_TOKEN: ${{ env.E2E_GITHUB_TOKEN }} - name: Send Slack notification if: ${{ !cancelled() }} uses: slackapi/slack-github-action@91efab103c0de0a537f72a35f6b8cda0ee76bf0a # v2.1.1 with: webhook: ${{ env.SLACK_WEBHOOK_URL }} webhook-type: incoming-webhook payload: | { "text": "${{ steps.e2e.outcome == 'success' && ':white_check_mark: E2E SDK Tests Passed' || ':x: E2E SDK Tests Failed' }}\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{github.run_id }}|View E2E SDK Run Details>" }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/settlemint/sdk'

If you have feedback or need assistance with the MCP directory API, please join our Discord server