mirror of
https://github.com/vacp2p/linea-monorepo.git
synced 2026-01-09 15:38:06 -05:00
* feat: restructure and integrate layerswap * fix: remove CEX page from internal nav because it is a duplicate * fix: update layerswap widget and clean libs * fix: wagmi connection * chore: update color and layout * fix: bump layerswap widget lib to version 0.1.15 * fix: fix widget width * fix: fix ui issue on mobile * fix: bump bridge ui version, update release notes and update dockerfile and ci --------- Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Co-authored-by: VGau <victorien.gauch@consensys.net>
108 lines
4.2 KiB
YAML
108 lines
4.2 KiB
YAML
name: Run Bridge UI E2E Tests
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'bridge-ui/**'
|
|
- '.github/workflows/bridge-ui-e2e-tests.yml'
|
|
- '!bridge-ui/**/*.md'
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'bridge-ui/**'
|
|
- '.github/workflows/bridge-ui-e2e-tests.yml'
|
|
- '!bridge-ui/**/*.md'
|
|
|
|
jobs:
|
|
run-e2e-tests:
|
|
if: github.event.pull_request.head.repo.fork == false
|
|
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-med
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
# Use for testing workflow only (and not publish to Docker)
|
|
- uses: actions/cache@v4.2.0
|
|
with:
|
|
# This workflow requires a ~1GB cache
|
|
path: |
|
|
~/.npm
|
|
~/.cache/ms-playwright
|
|
~/_work/.pnpm-store/v3
|
|
${{ github.workspace }}/bridge-ui/.next/cache
|
|
${{ github.workspace }}/bridge-ui/.cache-synpress
|
|
# Don't make cache key too specific as
|
|
# i.) Risk exceeding Github cache storage limit (10GB)
|
|
# ii.) Add ~3 minutes to each workflow run to save cache for a new cache key
|
|
key: ${{ runner.os }}-bridge-ui-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-bridge-ui-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
|
|
- name: Setup nodejs environment
|
|
uses: ./.github/actions/setup-nodejs
|
|
with:
|
|
node-version: 20.17.0
|
|
pnpm-install-options: '--frozen-lockfile --prefer-offline'
|
|
|
|
- name: Install Playwright
|
|
run: pnpm dlx playwright@1.51.1 install --with-deps chromium
|
|
|
|
- name: Build Bridge UI
|
|
run: pnpm run -F bridge-ui build
|
|
env:
|
|
NEXT_PUBLIC_WALLET_CONNECT_ID: ${{ secrets.PUBLIC_WALLET_CONNECT_ID }}
|
|
NEXT_PUBLIC_INFURA_ID: ${{ secrets.PUBLIC_BRIDGE_UI_INFURA_ID }}
|
|
NEXT_PUBLIC_QUICKNODE_ID: ${{ secrets.PUBLIC_BRIDGE_UI_QUICKNODE_ID }}
|
|
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID: ${{ secrets.PUBLIC_DYNAMIC_SANDBOX_ENVIRONMENT_ID }}
|
|
NEXT_PUBLIC_LIFI_API_KEY: ${{ secrets.PUBLIC_LIFI_API_KEY }}
|
|
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME: ${{ secrets.PUBLIC_LIFI_INTEGRATOR_NAME }}
|
|
NEXT_PUBLIC_ONRAMPER_API_KEY: ${{ secrets.PUBLIC_ONRAMPER_API_KEY }}
|
|
NEXT_PUBLIC_LAYERSWAP_API_KEY: ${{ secrets.PUBLIC_LAYERSWAP_API_KEY }}
|
|
|
|
- name: Install linux dependencies
|
|
run: |
|
|
sudo apt-get install --no-install-recommends -y xvfb
|
|
|
|
- name: Initialize Metamask testing fixture
|
|
run: xvfb-run pnpm run -F bridge-ui build:cache
|
|
env:
|
|
E2E_TEST_PRIVATE_KEY: ${{ secrets.BRIDGE_UI_E2E_TESTS_PRIVATE_KEY }}
|
|
E2E_TEST_SEED_PHRASE: "test test test test test test test test test test test junk"
|
|
E2E_TEST_WALLET_PASSWORD: "TestPassword!"
|
|
NEXT_PUBLIC_INFURA_ID: ${{ secrets.PUBLIC_BRIDGE_UI_INFURA_ID }}
|
|
|
|
- name: Run unit tests
|
|
run: DOTENV_CONFIG_PATH=.env.production pnpm run -F bridge-ui test:unit
|
|
env:
|
|
# Can run unit tests in parallel
|
|
CI: "false"
|
|
NEXT_PUBLIC_INFURA_ID: ${{ secrets.PUBLIC_BRIDGE_UI_INFURA_ID }}
|
|
NEXT_PUBLIC_LIFI_API_KEY: "placeholder"
|
|
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME: "placeholder"
|
|
NEXT_PUBLIC_WALLET_CONNECT_ID: "placeholder"
|
|
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID: "placeholder"
|
|
NEXT_PUBLIC_QUICKNODE_ID: "placeholder"
|
|
|
|
# Prerequisite - Testing wallet must have >0 ETH and USDC on Sepolia
|
|
- name: Run E2E tests
|
|
run: xvfb-run pnpm run -F bridge-ui test:e2e:headful
|
|
env:
|
|
# Do not run E2E tests in parallel. Especially blockchain tx where nonces can collide.
|
|
CI: "true"
|
|
E2E_TEST_PRIVATE_KEY: ${{ secrets.BRIDGE_UI_E2E_TESTS_PRIVATE_KEY }}
|
|
E2E_TEST_SEED_PHRASE: "test test test test test test test test test test test junk"
|
|
E2E_TEST_WALLET_PASSWORD: "TestPassword!"
|
|
NEXT_PUBLIC_INFURA_ID: ${{ secrets.PUBLIC_BRIDGE_UI_INFURA_ID }}
|
|
|
|
- name: Archive Playwright report
|
|
uses: actions/upload-artifact@v4
|
|
if: failure()
|
|
with:
|
|
name: playwright-report-headful
|
|
path: |
|
|
bridge-ui/playwright-report-headful/
|
|
if-no-files-found: error
|