Skip to content

chore(deps-dev)(deps-dev): bump @faker-js/faker from 8.4.1 to 9.5.1 in /src/web #182

chore(deps-dev)(deps-dev): bump @faker-js/faker from 8.4.1 to 9.5.1 in /src/web

chore(deps-dev)(deps-dev): bump @faker-js/faker from 8.4.1 to 9.5.1 in /src/web #182

Workflow file for this run

# Web Application Continuous Integration Workflow
# Implements comprehensive build, test and quality checks for the React TypeScript application
# Version: 1.0.0
name: Web CI
# Trigger configuration
on:
push:
branches:
- main
- develop
paths:
- 'src/web/**' # Only trigger on web application changes
pull_request:
branches:
- main
- develop
paths:
- 'src/web/**'
# Environment variables
env:
NODE_VERSION: '20.x' # Matches package.json engine requirement
PNPM_VERSION: '8.x' # Matches package.json engine requirement
CACHE_KEY_PREFIX: 'web-ci'
MAX_WARNINGS: '0' # Enforce zero warnings policy
# Job definitions
jobs:
build-and-test:
runs-on: ubuntu-latest
timeout-minutes: 15 # Prevent hanging builds
strategy:
fail-fast: true # Stop all jobs if one fails
steps:
# Step 1: Checkout repository
- name: Checkout
uses: actions/checkout@v4 # v4 - Latest stable version
with:
fetch-depth: 0 # Full history for better change detection
# Step 2: Setup Node.js environment
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm' # Enable built-in pnpm caching
# Step 3: Setup pnpm package manager
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
run_install: false # We'll run install separately
# Step 4: Configure pnpm store path for caching
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_ENV
# Step 5: Cache dependencies
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ${{ env.STORE_PATH }}
key: ${{ env.CACHE_KEY_PREFIX }}-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ env.CACHE_KEY_PREFIX }}-${{ runner.os }}-
# Step 6: Install dependencies
- name: Install dependencies
run: cd src/web && pnpm install --frozen-lockfile --prefer-offline
# Step 7: TypeScript type checking
- name: Type check
run: cd src/web && pnpm typecheck
env:
CI: true
# Step 8: ESLint code quality checks
- name: Lint
run: cd src/web && pnpm lint --max-warnings ${{ env.MAX_WARNINGS }}
env:
CI: true
# Step 9: Run tests with coverage
- name: Test
run: cd src/web && pnpm test --coverage --maxWorkers=2
env:
CI: true
NODE_OPTIONS: '--max_old_space_size=4096' # Prevent memory issues
# Step 10: Build production bundle
- name: Build
run: cd src/web && pnpm build
env:
CI: true
NODE_OPTIONS: '--max_old_space_size=4096' # Prevent memory issues during build