86 lines
1.6 KiB
YAML
86 lines
1.6 KiB
YAML
name: 🔍 CI
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
lint:
|
|
name: 🪄 Check lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: ⬇️ Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: 🧰 Setup Node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: "20"
|
|
cache: npm
|
|
|
|
- name: 📥 Install
|
|
run: npm ci
|
|
|
|
- name: 🔍 Lint
|
|
run: npm run lint
|
|
|
|
format:
|
|
name: 🎨 Check format
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: ⬇️ Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: 🧰 Setup Node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: "20"
|
|
cache: npm
|
|
|
|
- name: 📥 Install
|
|
run: npm ci
|
|
|
|
- name: 🎨 Format
|
|
run: npm run format:check
|
|
|
|
typecheck:
|
|
name: 🔎 Typecheck
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: ⬇️ Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: 🧰 Setup Node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: "20"
|
|
cache: npm
|
|
|
|
- name: 📥 Install
|
|
run: npm ci
|
|
|
|
- name: 🔎 Typecheck
|
|
run: npm run typecheck
|
|
|
|
build:
|
|
name: 🏗 Build
|
|
runs-on: ubuntu-latest
|
|
needs: [lint, format, typecheck]
|
|
steps:
|
|
- name: ⬇️ Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: 🧰 Setup Node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: "20"
|
|
cache: npm
|
|
|
|
- name: 📥 Install
|
|
run: npm ci
|
|
|
|
- name: 🏗 Build
|
|
run: npm run build
|