Skip to content

Commit d3cb5f9

Browse files
authored
Merge pull request #171 from School-of-Company/feat/vitest-setup
chore: vitest 초기 세팅 및 샘플 테스트 추가
2 parents c5435a5 + b02e30a commit d3cb5f9

File tree

10 files changed

+2676
-125
lines changed

10 files changed

+2676
-125
lines changed

.github/workflows/node.js.yml

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,31 @@ name: CI
22

33
on:
44
push:
5-
branches: [main]
5+
branches: [main, develop]
66
pull_request:
77
branches: [main, develop]
88
types: [opened, synchronize, reopened, ready_for_review]
99

1010
permissions:
1111
pull-requests: write
1212
contents: read
13+
checks: write
14+
1315
jobs:
1416
build:
1517
runs-on: ubuntu-latest
1618

1719
steps:
1820
- name: 소스코드 체크아웃
19-
uses: actions/checkout@v3
21+
uses: actions/checkout@v4
2022

2123
- name: Node.js 설정
22-
uses: actions/setup-node@v3
24+
uses: actions/setup-node@v4
2325
with:
24-
node-version: "18"
25-
26-
- name: npm 최신 버전 설치 (선택 사항)
27-
run: npm install -g npm@8
26+
node-version: "20"
2827

2928
- name: npm 캐시 설정
30-
uses: actions/cache@v3
29+
uses: actions/cache@v4
3130
with:
3231
path: ~/.npm
3332
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
@@ -43,23 +42,52 @@ jobs:
4342
- name: 빌드
4443
run: npm run build
4544

45+
test:
46+
runs-on: ubuntu-latest
47+
48+
steps:
49+
- name: 소스코드 체크아웃
50+
uses: actions/checkout@v4
51+
52+
- name: Node.js 설정
53+
uses: actions/setup-node@v4
54+
with:
55+
node-version: "20"
56+
57+
- name: npm 캐시 설정
58+
uses: actions/cache@v4
59+
with:
60+
path: ~/.npm
61+
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
62+
restore-keys: |
63+
${{ runner.os }}-node-
64+
65+
- name: 의존성 설치
66+
run: npm install --frozen-lockfile
67+
68+
- name: 테스트 및 커버리지 생성
69+
run: npm run test:coverage
70+
71+
- name: 커버리지 리포트 PR 코멘트
72+
uses: davelosert/vitest-coverage-report-action@v2
73+
if: github.event_name == 'pull_request'
74+
4675
pr-checks:
47-
needs: build
76+
needs: [build]
4877
runs-on: ubuntu-latest
78+
if: always() && github.event_name == 'pull_request'
4979
steps:
5080
- name: PR CI 결과 코멘트
51-
if: always()
52-
uses: actions/github-script@v6
81+
uses: actions/github-script@v7
5382
with:
5483
script: |
55-
const pr = context.payload.pull_request;
56-
const status = '${{ job.status }}';
57-
const message = status === 'success'
58-
? '✅ CI 성공'
59-
: '❌ CI 실패';
84+
const buildResult = '${{ needs.build.result }}';
85+
const message = buildResult === 'success'
86+
? '✅ CI 성공 (빌드 & 린트 통과)'
87+
: `❌ CI 실패 (빌드: ${buildResult})`;
6088
6189
github.rest.issues.createComment({
62-
issue_number: pr.number,
90+
issue_number: context.payload.pull_request.number,
6391
owner: context.repo.owner,
6492
repo: context.repo.repo,
6593
body: message

0 commit comments

Comments
 (0)