Unit Tests, Quality Gate #41
Workflow file for this run
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
name: UI Checks | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
ui-checks: | |
if: github.event.pull_request.draft == false | |
name: Build & Tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: 'yarn' | |
cache-dependency-path: 'yarn.lock' | |
- name: Cache node modules | |
uses: actions/cache@v4 | |
id: cache-npm | |
with: | |
path: | | |
node_modules | |
~/.npm | |
key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-modules- | |
${{ runner.os }}- | |
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }} | |
name: Install dependencies | |
run: yarn workspaces focus | |
- name: Linter | |
run: yarn eslint:check | |
- name: Prettier | |
run: yarn prettier:check | |
- name: Cache UI build | |
uses: actions/cache@v4 | |
id: cache-build | |
with: | |
path: dist | |
key: ${{ runner.os }}-dist-${{ hashFiles('**/*.ts', '**/*.tsx') }} | |
restore-keys: | | |
${{ runner.os }}-dist- | |
${{ runner.os }}- | |
- name: UI Unit Tests | |
run: yarn test | |
- if: ${{ steps.cache-build.outputs.cache-hit != 'true' }} | |
name: Build UI | |
run: yarn build | |
storybook-check: | |
name: Verify Storybook | |
runs-on: ubuntu-latest | |
needs: ui-checks | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: 'npm' | |
- name: Install dependencies for Storybook | |
working-directory: storybook | |
run: npm install | |
- name: Build Storybook | |
working-directory: storybook | |
run: npm run build-storybook | |
- name: Verify Storybook Build | |
run: | | |
if [ ! -d "storybook/storybook-static" ]; then | |
echo "Storybook build failed: directory not found." | |
exit 1 | |
else | |
echo "Storybook build successful." | |
fi |