fix(status.app): only render a blog 404 when Ghost says the post is m… #1631
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: E2E Tests | |
| on: | |
| push: | |
| branches: ['master', 'develop'] | |
| pull_request: | |
| types: [opened, synchronize] | |
| workflow_call: | |
| env: | |
| METAMASK_VERSION: '13.18.1' | |
| jobs: | |
| e2e: | |
| name: E2E Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 9.12.3 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22.x | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| # Build the Hub's workspace deps (dist/) so the Next dev server the e2e | |
| # webServer starts can resolve them. Cached, so the webServer's own build | |
| # step is then a no-op. | |
| - name: Build Hub dependencies | |
| run: pnpm exec turbo run build --filter=hub^... | |
| - name: Install Playwright browsers | |
| run: cd e2e && pnpm exec playwright install chromium --with-deps | |
| - name: Cache MetaMask extension | |
| id: metamask-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: e2e/.extensions/metamask | |
| key: metamask-v${{ env.METAMASK_VERSION }}-${{ hashFiles('e2e/download-metamask-extension.ts') }} | |
| - name: Download MetaMask extension | |
| if: steps.metamask-cache.outputs.cache-hit != 'true' | |
| run: cd e2e && pnpm setup:metamask | |
| # Local Anvil forks for the @anvil on-chain tests. | |
| - name: Start Anvil forks | |
| run: cd e2e && pnpm anvil:up | |
| # No BASE_URL → Playwright's webServer builds + serves this branch's Hub | |
| # on localhost:3003, so all projects exercise local code. | |
| - name: Run E2E tests | |
| run: cd e2e && xvfb-run --auto-servernum -- pnpm test | |
| env: | |
| WALLET_SEED_PHRASE: ${{ secrets.E2E_WALLET_SEED_PHRASE }} | |
| WALLET_PASSWORD: ${{ secrets.E2E_WALLET_PASSWORD }} | |
| CI: true | |
| - name: Stop Anvil forks | |
| if: always() | |
| run: cd e2e && pnpm anvil:down | |
| - name: Upload test report | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: e2e-report | |
| path: e2e/test-results/ | |
| retention-days: 14 | |
| - name: Upload test artifacts | |
| uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: e2e-artifacts | |
| path: | | |
| e2e/test-results/artifacts/ | |
| retention-days: 7 | |
| e2e-wallet: | |
| name: E2E Tests (Wallet extension) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| # The wallet-send flow needs the local status-api backend (apps/api), but no | |
| # real API keys: chain calls go through the rpc-router to the Anvil fork, and | |
| # the enhanced/CoinGecko-backed endpoints are mocked by the data seam. Dummy | |
| # values just satisfy apps/api's env validation. ETH_RPC_PROXY_URL is set by | |
| # the Playwright webServer (-> rpc-router). For lower flakiness, point the fork | |
| # at an archive RPC by adding an E2E_MAINNET_FORK_URL secret (see below). | |
| env: | |
| ALCHEMY_API_KEYS: test | |
| INFURA_API_KEY: test | |
| COINGECKO_API_KEY: test | |
| ETH_RPC_PROXY_AUTH_USERNAME: test | |
| ETH_RPC_PROXY_AUTH_PASSWORD: test | |
| MARKET_PROXY_URL: http://localhost:9999 | |
| MARKET_PROXY_AUTH_USERNAME: test | |
| MARKET_PROXY_AUTH_PASSWORD: test | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 9.12.3 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22.x | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Install Playwright browsers | |
| run: cd e2e && pnpm exec playwright install chromium --with-deps | |
| # Build the wallet's workspace deps (dist/), then the extension itself in | |
| # dev mode so WXT_STATUS_API_URL points at the local apps/api (:3030). | |
| - name: Build wallet dependencies | |
| run: pnpm exec turbo run build --filter=wallet^... | |
| - name: Build wallet extension | |
| run: cd e2e && pnpm setup:wallet | |
| # Local mainnet + Linea Anvil forks. To reduce archive-related flakiness, | |
| # set MAINNET_FORK_URL to an archive RPC via the E2E_MAINNET_FORK_URL secret. | |
| - name: Start Anvil forks | |
| run: cd e2e && pnpm anvil:up | |
| env: | |
| MAINNET_FORK_URL: ${{ secrets.E2E_MAINNET_FORK_URL || 'https://ethereum-rpc.publicnode.com' }} | |
| # Playwright's webServer starts apps/api (:3030) + rpc-router (:8548) for the | |
| # wallet projects (no Hub, no MetaMask). Headed extension tests need xvfb. | |
| - name: Run wallet E2E tests | |
| run: cd e2e && xvfb-run --auto-servernum -- pnpm exec playwright test --project=wallet-send --project=wallet-swap | |
| env: | |
| RUN_WALLET_E2E: '1' | |
| WALLET_SEED_PHRASE: ${{ secrets.E2E_WALLET_SEED_PHRASE }} | |
| CI: true | |
| - name: Stop Anvil forks | |
| if: always() | |
| run: cd e2e && pnpm anvil:down | |
| - name: Upload test report | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: e2e-wallet-report | |
| path: e2e/test-results/ | |
| retention-days: 14 | |
| - name: Upload test artifacts | |
| uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: e2e-wallet-artifacts | |
| path: | | |
| e2e/test-results/artifacts/ | |
| retention-days: 7 |