Skip to content

feat(web): real social preview card for link shares #145

feat(web): real social preview card for link shares

feat(web): real social preview card for link shares #145

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
# ── TypeScript: lint, typecheck, unit/integration tests, build ──────────────
node:
name: Node (lint · typecheck · test · build)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10.6.0
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile=false
# Build workspace packages first so app typechecks resolve their d.ts.
- run: pnpm --filter @contextio/config build
- run: pnpm --filter @contextio/shared build
- run: pnpm --filter @contextio/tests build
- name: Lint
run: pnpm lint
- name: Typecheck
run: pnpm typecheck
- name: Test (unit + integration)
run: pnpm test
- name: Build
run: pnpm build
- name: Dependency audit (non-blocking)
run: pnpm audit --audit-level high || true
# ── Rust / Soroban contracts ────────────────────────────────────────────────
contracts:
name: Soroban (fmt · clippy · test)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- name: Format check
run: cargo fmt --all -- --check
# Lint the contracts for their real target (wasm32). The SDK provides the
# no_std panic handler there; host-target clippy of a no_std cdylib is not
# meaningful for Soroban.
- name: Clippy (wasm32)
run: cargo clippy --target wasm32-unknown-unknown -- -D warnings
- name: Unit tests
run: cargo test --all
- name: Build WASM
run: cargo build --release --target wasm32-unknown-unknown
# ── Playwright E2E (web, runs on demo data) ─────────────────────────────────
e2e:
name: E2E (Playwright)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10.6.0
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile=false
- run: pnpm --filter @contextio/shared build
- name: Install Playwright browsers
run: pnpm --filter @contextio/web exec playwright install --with-deps chromium
- name: Run E2E
run: pnpm --filter @contextio/web test:e2e