Skip to content

feat: add react-live component previews #67

feat: add react-live component previews

feat: add react-live component previews #67

name: Fondue CI
on:
pull_request:
paths:
- packages/**
# Ensures that only one workflow per branch will run at a time.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
NUMBER_OF_RUNNERS: 8
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout default branch
uses: actions/checkout@v4
- name: Use pnpm
uses: pnpm/action-setup@v2
with:
version: latest
run_install: false
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
- name: Install npm dependencies
run: pnpm i --frozen-lockfile
- name: Generate (old) icons
run: pnpm --stream --filter {packages/fondue} generate:icons && pnpm --stream --filter {packages/fondue} generate:componentsEnum
- name: Generate React icons
run: pnpm --stream --filter {packages/icons} build:generate-react-icons
- name: Lint code
run: pnpm --stream --filter {packages/fondue} --filter {packages/components} --filter {packages/icons} lint
typecheck:
name: Typecheck
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout default branch
uses: actions/checkout@v4
- name: Use pnpm
uses: pnpm/action-setup@v2
with:
version: latest
run_install: false
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
- name: Install npm dependencies
run: pnpm i --frozen-lockfile
- name: Generate (old) icons
run: pnpm --stream --filter {packages/fondue} generate:icons && pnpm --stream --filter {packages/fondue} generate:componentsEnum
- name: Generate React icons
run: pnpm --stream --filter {packages/icons} build:generate-react-icons
- name: Typecheck code
run: pnpm --stream --filter {packages/fondue} --filter {packages/components} --filter {packages/icons} typecheck
old-component-tests:
name: Old Component Tests
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
containers: [0, 1, 2, 3, 4, 5, 6, 7]
steps:
- name: Checkout current commit
uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- name: Use pnpm
uses: pnpm/[email protected]
with:
version: latest
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v3
with:
path: |
${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
~/.cache/Cypress
key: pnpm-with-cypress-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: pnpm-with-cypress-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate (old) icons
run: pnpm --stream --filter {packages/fondue} generate:icons && pnpm --stream --filter {packages/fondue} generate:componentsEnum
- name: Component Tests
run: pnpm run --stream --filter {packages/fondue} test --spec $(node ./.github/lib/cypress-matrix.mjs ${{ env.NUMBER_OF_RUNNERS }} ${{ matrix.containers }})
component-tests:
name: Component Tests
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout current commit
uses: actions/checkout@v4
- name: Use pnpm
uses: pnpm/action-setup@v2
with:
version: latest
run_install: false
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Test code
run: pnpm --stream --filter {packages/components} test