Skip to content

feat: redesign guest list table and extract filter popover #767

feat: redesign guest list table and extract filter popover

feat: redesign guest list table and extract filter popover #767

Workflow file for this run

name: Web Frontend CI
on:
push:
branches:
- main
paths:
- "clients/web/**"
- "clients/shared/**"
- "backend/docs/**"
- ".github/workflows/WebCI.yaml"
pull_request:
branches:
- main
paths:
- "clients/web/**"
- "clients/shared/**"
- "backend/docs/**"
- ".github/workflows/WebCI.yaml"
permissions:
contents: read
checks: write
pull-requests: write
jobs:
secrets-scan:
name: Secrets Scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: TruffleHog secrets scan
uses: trufflesecurity/trufflehog@main
with:
extra_args: --only-verified
web-lint:
name: Lint & Format Check
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./clients/web
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: "./clients/web/package.json"
cache: "npm"
cache-dependency-path: "./clients/web/package-lock.json"
- name: Install dependencies
run: npm ci
- name: Install shared dependencies
run: cd ../shared && npm ci
- name: Generate API types
run: cd ../shared && npm run generate:api
- name: Run ESLint
run: npm run lint
- name: Check code formatting
run: npx prettier --check .
web-typecheck:
name: Type Check
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./clients/web
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: "./clients/web/package.json"
cache: "npm"
cache-dependency-path: "./clients/web/package-lock.json"
- name: Install dependencies
run: npm ci
- name: Install shared dependencies
run: cd ../shared && npm ci
- name: Generate API types
run: cd ../shared && npm run generate:api
- name: Run TypeScript compiler
run: npx tsc --noEmit
web-test:
name: Test
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./clients/web
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: actions/setup-node@v4
with:
node-version-file: "./clients/web/package.json"
cache: "npm"
cache-dependency-path: "./clients/web/package-lock.json"
- name: Install dependencies
run: npm ci
- name: Install shared dependencies
run: cd ../shared && npm ci
- name: Generate API types
run: cd ../shared && npm run generate:api
- name: Run tests with coverage
run: npx vitest run --coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage/lcov.info
flags: web
web-build:
name: Build
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./clients/web
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: "./clients/web/package.json"
cache: "npm"
cache-dependency-path: "./clients/web/package-lock.json"
- name: Install dependencies
run: npm ci
- name: Install shared dependencies
run: cd ../shared && npm ci
- name: Generate API types
run: cd ../shared && npm run generate:api
- name: Verify package-lock.json is up to date
run: |
npm install --package-lock-only
git diff --exit-code package-lock.json
- name: Install Doppler CLI
uses: dopplerhq/cli-action@v3
- name: Build application
# Not needed currently, just for builds and deployment using doppler run command
env:
DOPPLER_TOKEN: ${{ secrets.DOPPLER_TOKEN_WEB }}
run: npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: web-build
path: clients/web/dist
retention-days: 7