chore: promote develop to main #266
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Client | |
| on: | |
| push: | |
| branches: [main, develop] | |
| paths: | |
| - "package.json" | |
| - "bun.lock" | |
| - "biome.json" | |
| - ".env.schema" | |
| - "playwright.config.ts" | |
| - "tests/**" | |
| - "packages/client/**" | |
| - "packages/shared/**" | |
| - "packages/contracts/src/**" | |
| - "packages/contracts/abis/**" | |
| - "packages/contracts/deployments/**" | |
| - "scripts/ops/upload-sourcemaps.js" | |
| - ".github/workflows/client.yml" | |
| pull_request: | |
| branches: [main, develop] | |
| paths: | |
| - "package.json" | |
| - "bun.lock" | |
| - "biome.json" | |
| - ".env.schema" | |
| - "playwright.config.ts" | |
| - "tests/**" | |
| - "packages/client/**" | |
| - "packages/shared/**" | |
| - "packages/contracts/src/**" | |
| - "packages/contracts/abis/**" | |
| - "packages/contracts/deployments/**" | |
| - "scripts/ops/upload-sourcemaps.js" | |
| - ".github/workflows/client.yml" | |
| workflow_dispatch: | |
| inputs: | |
| operation: | |
| description: "Client operation to run" | |
| required: true | |
| type: choice | |
| options: | |
| - ci | |
| - lighthouse | |
| - all | |
| default: ci | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: Test | |
| if: github.event_name != 'workflow_dispatch' || inputs.operation == 'ci' || inputs.operation == 'all' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run client tests with coverage | |
| working-directory: packages/client | |
| run: bun run coverage | |
| env: | |
| CI: true | |
| lint-build: | |
| name: Lint And Build | |
| if: github.event_name != 'workflow_dispatch' || inputs.operation == 'ci' || inputs.operation == 'all' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run client lint | |
| working-directory: packages/client | |
| run: bun run lint | |
| - name: Check formatting | |
| run: bun run format:check | |
| - name: Build client | |
| working-directory: packages/client | |
| run: bun run build | |
| env: | |
| VITE_USE_HASH_ROUTER: "false" | |
| VITE_CHAIN_ID: "11155111" | |
| VITE_WALLETCONNECT_PROJECT_ID: ${{ secrets.VITE_WALLETCONNECT_PROJECT_ID || 'test' }} | |
| VITE_PIMLICO_API_KEY: ${{ secrets.VITE_PIMLICO_API_KEY || 'test' }} | |
| VITE_ENVIO_INDEXER_URL: ${{ secrets.VITE_ENVIO_INDEXER_URL || 'http://localhost:3006/v1/graphql' }} | |
| VITE_PINATA_GATEWAY_URL: ${{ vars.VITE_PINATA_GATEWAY_URL || 'https://greengoods.mypinata.cloud' }} | |
| VITE_PINATA_API_URL: ${{ vars.VITE_PINATA_API_URL || 'https://api.pinata.cloud' }} | |
| sourcemaps: | |
| name: Upload Client Source Maps | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| needs: lint-build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Upload client source maps | |
| run: node scripts/ops/upload-sourcemaps.js --app client --env production --version "${{ github.sha }}" | |
| env: | |
| CI: true | |
| POSTHOG_CLI_TOKEN: ${{ secrets.POSTHOG_CLI_TOKEN }} | |
| POSTHOG_CLIENT_ENV_ID: ${{ secrets.POSTHOG_CLIENT_ENV_ID }} | |
| VITE_USE_HASH_ROUTER: "false" | |
| VITE_CHAIN_ID: "42161" | |
| VITE_WALLETCONNECT_PROJECT_ID: ${{ secrets.VITE_WALLETCONNECT_PROJECT_ID || 'test' }} | |
| VITE_PIMLICO_API_KEY: ${{ secrets.VITE_PIMLICO_API_KEY || 'test' }} | |
| VITE_ENVIO_INDEXER_URL: ${{ secrets.VITE_ENVIO_INDEXER_URL || 'http://localhost:3006/v1/graphql' }} | |
| VITE_PINATA_GATEWAY_URL: ${{ vars.VITE_PINATA_GATEWAY_URL || 'https://greengoods.mypinata.cloud' }} | |
| VITE_PINATA_API_URL: ${{ vars.VITE_PINATA_API_URL || 'https://api.pinata.cloud' }} | |
| e2e: | |
| name: Playwright Client CI | |
| if: github.event_name != 'workflow_dispatch' || inputs.operation == 'ci' || inputs.operation == 'all' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v6 | |
| with: | |
| version: 9 | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Setup indexer generated code | |
| working-directory: packages/indexer | |
| run: | | |
| bun run codegen | |
| bun run setup-generated | |
| - name: Install Playwright Chromium | |
| run: bunx playwright install --with-deps chromium | |
| - name: Run client Playwright project | |
| run: PLAYWRIGHT_APP=client APP_ENV=test bunx playwright test --project=client-ci | |
| env: | |
| CI: true | |
| SKIP_INDEXER: "true" | |
| VITE_CHAIN_ID: "11155111" | |
| VITE_WALLETCONNECT_PROJECT_ID: ${{ secrets.VITE_WALLETCONNECT_PROJECT_ID || 'test' }} | |
| VITE_PIMLICO_API_KEY: ${{ secrets.VITE_PIMLICO_API_KEY || 'test' }} | |
| VITE_ENVIO_INDEXER_URL: ${{ secrets.VITE_ENVIO_INDEXER_URL || 'http://localhost:3006/v1/graphql' }} | |
| VITE_PINATA_GATEWAY_URL: ${{ vars.VITE_PINATA_GATEWAY_URL || 'https://greengoods.mypinata.cloud' }} | |
| VITE_PINATA_API_URL: ${{ vars.VITE_PINATA_API_URL || 'https://api.pinata.cloud' }} | |
| - name: Upload Playwright report | |
| uses: actions/upload-artifact@v7 | |
| if: always() | |
| with: | |
| name: client-playwright-report | |
| path: tests/playwright-report/ | |
| retention-days: 14 | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v7 | |
| if: always() | |
| with: | |
| name: client-playwright-results | |
| path: tests/test-results/ | |
| retention-days: 14 | |
| lighthouse: | |
| name: Lighthouse Client Advisory | |
| if: github.event_name == 'workflow_dispatch' && (inputs.operation == 'lighthouse' || inputs.operation == 'all') | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| continue-on-error: true | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run Lighthouse advisory | |
| run: bun run lighthouse:client | |
| env: | |
| VITE_CHAIN_ID: "11155111" | |
| VITE_WALLETCONNECT_PROJECT_ID: ${{ secrets.VITE_WALLETCONNECT_PROJECT_ID || 'test' }} | |
| VITE_PIMLICO_API_KEY: ${{ secrets.VITE_PIMLICO_API_KEY || 'test' }} | |
| VITE_ENVIO_INDEXER_URL: ${{ secrets.VITE_ENVIO_INDEXER_URL || 'http://localhost:3006/v1/graphql' }} | |
| VITE_PINATA_GATEWAY_URL: ${{ vars.VITE_PINATA_GATEWAY_URL || 'https://greengoods.mypinata.cloud' }} | |
| VITE_PINATA_API_URL: ${{ vars.VITE_PINATA_API_URL || 'https://api.pinata.cloud' }} | |
| LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }} | |
| - name: Upload Lighthouse results | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: lighthouse-client-results | |
| path: packages/client/.lighthouseci/ | |
| retention-days: 30 |