Skip to content

fix(landing): overhaul landing page copy and layout #1490

fix(landing): overhaul landing page copy and layout

fix(landing): overhaul landing page copy and layout #1490

Workflow file for this run

name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
lint-typecheck:
name: Lint & Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6.0.10
- uses: actions/setup-node@v7
with:
node-version: 20
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm format:check
- run: pnpm lint
- run: pnpm typecheck
# The Vercel serverless functions in api/ live outside the pnpm workspace,
# so turbo doesn't cover them — typecheck them explicitly.
- run: pnpm typecheck:api
- name: Verify apps/api-local build output is flat
run: |
pnpm --filter @meridian/api-local build
test -f apps/api-local/dist/index.js
vercel-build:
name: Verify Vercel Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6.0.10
- uses: actions/setup-node@v7
with:
node-version: 20
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Run the real Vercel build script
run: pnpm exec bash scripts/build-vercel.sh
- name: Assert every workspace package api/v1/* imports was bundled
run: |
for pkg in shared stellar-sdk-helpers api-core; do
if [ ! -f "packages/$pkg/dist/index.js" ]; then
echo "::error::packages/$pkg/dist/index.js was not produced by scripts/build-vercel.sh, but api/v1/* imports @meridian/$pkg. This is the exact failure mode from #398 (ERR_MODULE_NOT_FOUND in production)."
exit 1
fi
done
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6.0.10
- uses: actions/setup-node@v7
with:
node-version: 20
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm test
- run: pnpm coverage
commitlint:
name: Commit Messages
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: wagoid/commitlint-github-action@v6
with:
configFile: commitlint.config.mjs
pr-lint:
name: PR Title
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: amannn/action-semantic-pull-request@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: |
feat
fix
docs
chore
refactor
test
style
ci
perf
dependency-review:
name: Dependency Review
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v7
- uses: actions/dependency-review-action@v5
e2e:
name: E2E Tests
runs-on: ubuntu-latest
# Drives the real dev stack against real Stellar testnet RPC (wallet
# signing is mocked, see apps/web/e2e/fixtures.ts), so it exercises
# the real API and Soroban simulation paths end to end. Tests use page.route()
# to stub live-network-dependent data where it would otherwise be flaky on
# testnet RPC hiccups (see #535). Blocking.
#
# STELLAR_NETWORK must be set explicitly: mainnet is now the default
# (packages/shared/src/constants.ts, #738) since the product is live
# there, and this suite's testnet assumptions (testnet contract
# addresses, mocked-wallet fixtures funded on testnet) would otherwise
# silently target mainnet instead.
env:
STELLAR_NETWORK: testnet
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6.0.10
- uses: actions/setup-node@v7
with:
node-version: 20
cache: pnpm
- run: pnpm install --frozen-lockfile
# apps/api-local imports its workspace deps (@meridian/shared etc.) by
# package resolution, which needs their dist/ output built first - the
# dev server doesn't build them itself. Scoped to api-local's own
# dependency graph so this doesn't also try to build contracts/docs.
- run: pnpm exec turbo run build --filter=@meridian/api-local...
- run: pnpm --filter @meridian/web exec playwright install --with-deps chromium
- run: pnpm --filter @meridian/web test:e2e
contracts:
name: Soroban Contract Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
components: clippy, rustfmt
- uses: Swatinem/rust-cache@v2
with:
workspaces: packages/contracts
- name: Check formatting
working-directory: packages/contracts
run: cargo fmt --all -- --check
- name: Run clippy
working-directory: packages/contracts
run: cargo clippy --all-targets -- -D warnings
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Install LLVM coverage tools
run: rustup component add llvm-tools-preview
- name: Measure contract coverage
working-directory: packages/contracts
run: >-
cargo llvm-cov
--package meridian-vault
--package meridian-blend-adapter
--package meridian-defindex-adapter
--package adapter-common
--summary-only
--fail-under-lines 97.5
- name: Build wasm
working-directory: packages/contracts
run: cargo build --target wasm32-unknown-unknown --release