name: CI on: push: branches: [main] pull_request: branches: [main] env: NODE_VERSION: 20 jobs: ci: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: Install dependencies run: npm ci - name: Lint run: npm run lint - name: Format check run: npm run format:check - name: Test backend run: npm run test:backend - name: Test frontend run: npm run test:frontend - name: Build backend run: npm run build:backend - name: Build frontend run: npm run build:frontend - name: Setup Playwright browsers run: npx playwright install --with-deps chromium - name: Test design system run: npm run test:design-system - name: Build design system run: npm run build:design-system - name: Build Storybook run: npm run build:storybook - name: Test Storybook (browser) run: npm run test:storybook - name: Build docs run: npm run build:docs - name: Upload Storybook build (if failed) if: failure() uses: actions/upload-artifact@v4 with: name: storybook-static path: packages/design-system/storybook-static retention-days: 3