chore(deps-dev)(deps-dev): bump @faker-js/faker from 8.4.1 to 9.5.1 in /src/web #182
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |