Skip to content

chore(deps): bump qs and express #28

chore(deps): bump qs and express

chore(deps): bump qs and express #28

Workflow file for this run

# CI Pipeline - Lint, Build, Unit Test, E2E Test
# 이 μ›Œν¬ν”Œλ‘œμš°λŠ” PR 생성 μ‹œ μ½”λ“œ ν’ˆμ§ˆμ„ κ²€μ¦ν•©λ‹ˆλ‹€
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
env:
NODE_VERSION: "20"
jobs:
# ============================================
# 1️⃣ Lint - μ½”λ“œ μŠ€νƒ€μΌ 검사
# ============================================
lint:
name: πŸ” Lint Check
runs-on: ubuntu-latest
steps:
- name: πŸ“₯ Checkout code
uses: actions/checkout@v4
- name: πŸ“¦ Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: πŸ“š Install dependencies
run: npm ci
- name: πŸ” Run ESLint
run: npm run lint
# ============================================
# 2️⃣ Build - λΉŒλ“œ 검증
# ============================================
build:
name: πŸ—οΈ Build Check
runs-on: ubuntu-latest
needs: lint
steps:
- name: πŸ“₯ Checkout code
uses: actions/checkout@v4
- name: πŸ“¦ Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: πŸ“š Install dependencies
run: npm ci
- name: πŸ—οΈ Build application
run: npm run build:noauth
- name: πŸ“€ Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
retention-days: 1
# ============================================
# 3️⃣ Unit Test - μœ λ‹› ν…ŒμŠ€νŠΈ
# ============================================
unit-test:
name: πŸ§ͺ Unit Tests
runs-on: ubuntu-latest
needs: lint
steps:
- name: πŸ“₯ Checkout code
uses: actions/checkout@v4
- name: πŸ“¦ Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: πŸ“š Install dependencies
run: npm ci
- name: πŸ§ͺ Run unit tests
run: npm test -- --coverage --passWithNoTests
- name: πŸ“Š Upload coverage report
uses: actions/upload-artifact@v4
if: always()
with:
name: coverage-report
path: coverage/
retention-days: 7
# ============================================
# 4️⃣ E2E Test - End-to-End ν…ŒμŠ€νŠΈ
# ============================================
e2e-test:
name: 🎭 E2E Tests (Playwright)
runs-on: ubuntu-latest
needs: build
steps:
- name: πŸ“₯ Checkout code
uses: actions/checkout@v4
- name: πŸ“¦ Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: πŸ“š Install dependencies
run: npm ci
- name: 🎭 Install Playwright browsers
run: npx playwright install --with-deps chromium
- name: πŸ“₯ Download build artifacts
uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: 🌐 Start server and run E2E tests
run: |
npx serve -s dist -l 8081 &
sleep 5
npx playwright test --project=chromium || echo "No E2E tests found yet - skipping"
- name: πŸ“€ Upload Playwright report
uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 7