Files
ermnvldmr.com/.gitea/workflows/packages-ui-next-required.yml
T

285 lines
8.7 KiB
YAML

name: packages/ui - next/required
'on':
push:
branches:
- next
paths:
- packages/ui/**
- packages/stl/**
- packages/i18n/**
- .gitea/workflows/packages-ui-next-required.yml
- pnpm-lock.yaml
- ci/scripts/**
concurrency:
group: ci-ui-${{ github.ref_name }}
cancel-in-progress: true
permissions:
contents: read
actions: read
jobs:
setup-stage:
name: Setup - Stage
runs-on: apex-debian13
outputs: {}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup environment
run: bash ci/scripts/setup-env.sh 9.12.3 20
- name: Restore repository dependency cache
id: dependency-cache
run: python3 ci/scripts/cache.py restore
env:
CACHE_TOKEN: ${{ github.token }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Pack dependency cache
run: python3 ci/scripts/cache.py pack
- uses: actions/upload-artifact@v4
with:
name: ${{ steps.dependency-cache.outputs.key }}
path: .ci/pnpm-store.tar
retention-days: 7
build-configs:
name: Build - Configs
needs: setup-stage
runs-on: apex-debian13
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup environment
run: bash ci/scripts/setup-env.sh 9.12.3 20
- name: Restore repository dependency cache
id: dependency-cache
run: python3 ci/scripts/cache.py restore
env:
CACHE_TOKEN: ${{ github.token }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build Rsbuild config
run: pnpm --filter @ermnvldmr/rsbuild-config build
- name: Build Storybook config
run: pnpm --filter @ermnvldmr/storybook-config build
- name: Build i18n
run: pnpm --filter @ermnvldmr/i18n build
- name: Upload Rsbuild Config
uses: actions/upload-artifact@v4
with:
name: rsbuild-config-dist
path: packages/rsbuild-config/dist
retention-days: 30
- name: Upload Storybook Config
uses: actions/upload-artifact@v4
with:
name: storybook-config-dist
path: packages/storybook-config/dist
retention-days: 30
- name: Upload i18n dist
uses: actions/upload-artifact@v4
with:
name: i18n-dist
path: packages/i18n/dist
retention-days: 30
lint-ui:
name: Lint - UI
needs: build-configs
runs-on: apex-debian13
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup environment
run: bash ci/scripts/setup-env.sh 9.12.3 20
- name: Restore repository dependency cache
id: dependency-cache
run: python3 ci/scripts/cache.py restore
env:
CACHE_TOKEN: ${{ github.token }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Download Rsbuild Config
uses: actions/download-artifact@v4
with:
name: rsbuild-config-dist
path: packages/rsbuild-config/dist
- name: Download Storybook Config
uses: actions/download-artifact@v4
with:
name: storybook-config-dist
path: packages/storybook-config/dist
- name: Download i18n dist
uses: actions/download-artifact@v4
with:
name: i18n-dist
path: packages/i18n/dist
- name: Lint UI package
run: pnpm --filter @ermnvldmr/ui lint
typecheck-ui:
name: Typecheck - UI
needs: build-configs
runs-on: apex-debian13
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup environment
run: bash ci/scripts/setup-env.sh 9.12.3 20
- name: Restore repository dependency cache
id: dependency-cache
run: python3 ci/scripts/cache.py restore
env:
CACHE_TOKEN: ${{ github.token }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Download Rsbuild Config
uses: actions/download-artifact@v4
with:
name: rsbuild-config-dist
path: packages/rsbuild-config/dist
- name: Download Storybook Config
uses: actions/download-artifact@v4
with:
name: storybook-config-dist
path: packages/storybook-config/dist
- name: Download i18n dist
uses: actions/download-artifact@v4
with:
name: i18n-dist
path: packages/i18n/dist
- name: Typecheck UI package
run: pnpm --filter @ermnvldmr/ui typecheck
test-ui:
name: Test - Unit
needs: build-configs
runs-on: apex-debian13
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup environment
run: bash ci/scripts/setup-env.sh 9.12.3 20
- name: Restore repository dependency cache
id: dependency-cache
run: python3 ci/scripts/cache.py restore
env:
CACHE_TOKEN: ${{ github.token }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Download Rsbuild Config
uses: actions/download-artifact@v4
with:
name: rsbuild-config-dist
path: packages/rsbuild-config/dist
- name: Download Storybook Config
uses: actions/download-artifact@v4
with:
name: storybook-config-dist
path: packages/storybook-config/dist
- name: Download i18n dist
uses: actions/download-artifact@v4
with:
name: i18n-dist
path: packages/i18n/dist
- name: Test UI package
run: pnpm --filter @ermnvldmr/ui test:coverage
build-storybook:
name: Build - Storybook
needs: build-configs
runs-on: apex-debian13
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup environment
run: bash ci/scripts/setup-env.sh 9.12.3 20
- name: Restore repository dependency cache
id: dependency-cache
run: python3 ci/scripts/cache.py restore
env:
CACHE_TOKEN: ${{ github.token }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Download Rsbuild Config
uses: actions/download-artifact@v4
with:
name: rsbuild-config-dist
path: packages/rsbuild-config/dist
- name: Download Storybook Config
uses: actions/download-artifact@v4
with:
name: storybook-config-dist
path: packages/storybook-config/dist
- name: Download i18n dist
uses: actions/download-artifact@v4
with:
name: i18n-dist
path: packages/i18n/dist
- name: Build UI Storybook
run: pnpm --filter @ermnvldmr/ui build-storybook
test-storybook:
name: Test - Storybook
needs: build-storybook
runs-on: apex-debian13
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup environment
run: bash ci/scripts/setup-env.sh 9.12.3 20
- name: Restore repository dependency cache
id: dependency-cache
run: python3 ci/scripts/cache.py restore
env:
CACHE_TOKEN: ${{ github.token }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Download Rsbuild Config
uses: actions/download-artifact@v4
with:
name: rsbuild-config-dist
path: packages/rsbuild-config/dist
- name: Download Storybook Config
uses: actions/download-artifact@v4
with:
name: storybook-config-dist
path: packages/storybook-config/dist
- name: Download i18n dist
uses: actions/download-artifact@v4
with:
name: i18n-dist
path: packages/i18n/dist
- name: Install Playwright browsers
run: pnpm --filter @ermnvldmr/ui exec playwright install --with-deps chromium
- name: Build UI Storybook
run: pnpm --filter @ermnvldmr/ui build-storybook
- name: Test Storybook
run: pnpm --filter @ermnvldmr/ui test:storybook:ci
build-ui:
name: Build - UI
needs: build-configs
runs-on: apex-debian13
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup environment
run: bash ci/scripts/setup-env.sh 9.12.3 20
- name: Restore repository dependency cache
id: dependency-cache
run: python3 ci/scripts/cache.py restore
env:
CACHE_TOKEN: ${{ github.token }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Download Rsbuild Config
uses: actions/download-artifact@v4
with:
name: rsbuild-config-dist
path: packages/rsbuild-config/dist
- name: Download Storybook Config
uses: actions/download-artifact@v4
with:
name: storybook-config-dist
path: packages/storybook-config/dist
- name: Download i18n dist
uses: actions/download-artifact@v4
with:
name: i18n-dist
path: packages/i18n/dist
- name: Build UI package
run: pnpm --filter @ermnvldmr/ui build