perf: defer Solana wallet adapters #4386
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: ci | |
| on: | |
| push: | |
| branches: [main, nautilus, nexus, injective, trump, ousdt] | |
| pull_request: | |
| branches: [main, nautilus, nexus, injective, trump, ousdt] | |
| merge_group: | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Get pnpm store directory | |
| id: pnpm-store | |
| shell: bash | |
| run: echo "path=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: Cache pnpm store | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.pnpm-store.outputs.path }} | |
| key: ${{ runner.os }}-pnpm-11-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm-11-store- | |
| - name: Install dependencies | |
| run: | | |
| pnpm install --frozen-lockfile | |
| CHANGES=$(git status -s) | |
| if [[ ! -z $CHANGES ]]; then | |
| echo "Changes found: $CHANGES" | |
| git diff | |
| exit 1 | |
| fi | |
| - name: Cache build output | |
| id: build-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: .next/ | |
| key: ${{ runner.os }}-nextjs-build-${{ hashFiles('src/**', 'pnpm-lock.yaml', 'next.config.js', 'tsconfig.json') }} | |
| - name: build | |
| if: steps.build-cache.outputs.cache-hit != 'true' | |
| run: pnpm run build | |
| env: | |
| NEXT_PUBLIC_WALLET_CONNECT_ID: ${{ secrets.NEXT_PUBLIC_WALLET_CONNECT_ID }} | |
| - name: Check bundle size | |
| run: pnpm check:bundle | |
| typecheck: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Get pnpm store directory | |
| id: pnpm-store | |
| shell: bash | |
| run: echo "path=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: Cache pnpm store | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.pnpm-store.outputs.path }} | |
| key: ${{ runner.os }}-pnpm-11-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm-11-store- | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: typecheck | |
| run: pnpm run typecheck | |
| format: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Get pnpm store directory | |
| id: pnpm-store | |
| shell: bash | |
| run: echo "path=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: Cache pnpm store | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.pnpm-store.outputs.path }} | |
| key: ${{ runner.os }}-pnpm-11-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm-11-store- | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: format | |
| run: | | |
| pnpm run format | |
| CHANGES=$(git status -s) | |
| if [[ ! -z $CHANGES ]]; then | |
| echo "Changes found: $CHANGES" | |
| exit 1 | |
| fi | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Get pnpm store directory | |
| id: pnpm-store | |
| shell: bash | |
| run: echo "path=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: Cache pnpm store | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.pnpm-store.outputs.path }} | |
| key: ${{ runner.os }}-pnpm-11-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm-11-store- | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: lint | |
| run: pnpm run lint | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Get pnpm store directory | |
| id: pnpm-store | |
| shell: bash | |
| run: echo "path=$(pnpm store path)" >> $GITHUB_OUTPUT | |
| - name: Cache pnpm store | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.pnpm-store.outputs.path }} | |
| key: ${{ runner.os }}-pnpm-11-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm-11-store- | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: test | |
| run: pnpm run test | |
| e2e: | |
| needs: [build] | |
| if: >- | |
| github.base_ref == 'main' || | |
| (github.event_name == 'push' && github.ref == 'refs/heads/main') || | |
| github.event_name == 'merge_group' || | |
| github.event_name == 'workflow_dispatch' | |
| uses: ./.github/workflows/e2e.yml | |
| secrets: inherit | |
| # Fast wallet-connected E2E subset, gates every PR. | |
| e2e-smoke: | |
| needs: [build] | |
| uses: ./.github/workflows/e2e-smoke.yml | |
| secrets: inherit | |
| # Full wallet-connected E2E matrix (chromium/firefox/webkit). Main-only so | |
| # PRs stay fast; merge_group runs it as a final gate before landing. | |
| e2e-wallet-full: | |
| needs: [build] | |
| if: >- | |
| (github.event_name == 'push' && github.ref == 'refs/heads/main') || | |
| github.event_name == 'merge_group' || | |
| github.event_name == 'workflow_dispatch' | |
| uses: ./.github/workflows/e2e-wallet-full.yml | |
| secrets: inherit |