Entity question #414
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: 🛠️ Node | |
on: | |
pull_request: | |
branches: [ "dev" ] | |
jobs: | |
# Checkout, Setup and Install Dependencies | |
setup: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
- name: Cache Node.js Modules | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install Node.js Dependencies | |
run: npm install | |
# Prettier | |
prettier: | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Restore Node.js Modules Cache | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
- name: Prettier | |
run: npm run check | |
# ESLint | |
lint: | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Restore Node.js Modules Cache | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
- name: Lint | |
run: npm run lint | |
# Types check | |
typeslint: | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Restore Node.js Modules Cache | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
- name: Typeslint | |
run: npm run typeslint | |
# Stylelint | |
stylelint: | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Restore Node.js Modules Cache | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
- name: Stylelint | |
run: npm run slint | |
# Build Assets | |
build: | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Restore Node.js Modules Cache | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
- name: Build Assets | |
run: npm run build | |
# Build Storybook | |
storybook: | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Restore Node.js Modules Cache | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
- name: Build Assets | |
run: npm run storybook:build | |
# Run Vitests | |
test: | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Restore Node.js Modules Cache | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
- name: Execute tests via Vitest | |
run: npm run test |