Skip to content

feat(tokens): enhance orange theme with modern recipe platform aesthetics and WCAG AA+ compliance #305

feat(tokens): enhance orange theme with modern recipe platform aesthetics and WCAG AA+ compliance

feat(tokens): enhance orange theme with modern recipe platform aesthetics and WCAG AA+ compliance #305

Workflow file for this run

name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
# Cancel in-progress runs on new pushes to the same PR/branch
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install dependencies
run: npm ci --prefer-offline --no-audit --no-fund
- name: Run linter
run: npm run lint
- name: Run style linter
run: npm run lint:style
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install dependencies
run: npm ci --prefer-offline --no-audit --no-fund
- name: Run tests
run: npm run test
- name: Run build
run: npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-files
path: dist/
retention-days: 7
design-system-scan:
runs-on: ubuntu-latest
needs: [lint, test]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install dependencies
run: npm ci --prefer-offline --no-audit --no-fund
# - name: Get Playwright version
# id: playwright-version
# run: echo "version=$(npm list @playwright/test --depth=0 --json | jq -r '.dependencies."@playwright/test".version')" >> $GITHUB_OUTPUT
# - name: Cache Playwright browsers
# uses: actions/cache@v4
# id: playwright-cache
# with:
# path: ~/.cache/ms-playwright
# key: playwright-${{ runner.os }}-${{ steps.playwright-version.outputs.version }}
# - name: Install Playwright browsers
# if: steps.playwright-cache.outputs.cache-hit != 'true'
# run: npx playwright install --with-deps chromium
- name: Cache Storybook build
uses: actions/cache@v4
with:
path: storybook-static
key: storybook-${{ runner.os }}-${{ hashFiles('src/**/*', '.storybook/**/*', 'package-lock.json') }}
restore-keys: |
storybook-${{ runner.os }}-
- name: Build Storybook
run: npm run build-storybook
env:
NODE_ENV: production
# Skip font loading and optimize for CI
CI: true
NODE_OPTIONS: '--max-old-space-size=4096'
# Disable source maps for faster builds
GENERATE_SOURCEMAP: false
- name: Run design system accessibility scan
run: npm run test:a11y
- name: Run design token compliance scan
run: npm run scan:design-system
- name: Upload design system scan results
uses: actions/upload-artifact@v4
if: always()
with:
name: design-system-scan-results
path: |
test-results/
retention-days: 7
# - name: Run visual regression tests
# run: npx playwright test --workers=2
# env:
# CI: true
# - name: Upload design system scan results
# uses: actions/upload-artifact@v4
# if: always()
# with:
# name: design-system-scan-results
# path: |
# test-results/
# playwright-report/
# retention-days: 30
# - name: Upload accessibility test results
# uses: actions/upload-artifact@v4
# if: always()
# with:
# name: accessibility-test-results
# path: |
# test-results/design-system-results.json
# test-results/design-system-results.xml
# retention-days: 30