tylersong 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,191 +0,0 @@
1
- # 자동 배포 시스템 가이드
2
-
3
- ## 🎯 개요
4
- 이 시스템은 main 브랜치에 PR이 merge될 때 자동으로 버전을 업데이트하고 NPM에 배포하는 완전 자동화된 배포 시스템입니다.
5
-
6
- ## 🚀 작동 방식
7
-
8
- ### 1. 자동 트리거
9
- - **main 브랜치로의 PR merge**: CI 완료 후 자동 배포 시작
10
- - **main 브랜치로의 직접 push**: 즉시 자동 배포 시작
11
- - **태그 push**: 기존 태그 기반 배포 유지
12
-
13
- ### 2. 자동 버전 결정 (Semantic Versioning)
14
- 커밋 메시지를 분석하여 자동으로 버전 타입을 결정합니다:
15
-
16
- #### 🔴 Major 버전 (X.0.0)
17
- ```bash
18
- # Breaking changes
19
- git commit -m "feat!: completely new API structure"
20
- git commit -m "fix!: remove deprecated method"
21
- git commit -m "feat: add new feature
22
-
23
- BREAKING CHANGE: This removes the old API"
24
- ```
25
-
26
- #### 🟡 Minor 버전 (0.X.0)
27
- ```bash
28
- # New features
29
- git commit -m "feat: add user profile management"
30
- git commit -m "feat(auth): implement OAuth login"
31
- ```
32
-
33
- #### 🟢 Patch 버전 (0.0.X)
34
- ```bash
35
- # Bug fixes, docs, chores (default)
36
- git commit -m "fix: resolve login redirect issue"
37
- git commit -m "docs: update README"
38
- git commit -m "chore: update dependencies"
39
- git commit -m "style: fix code formatting"
40
- ```
41
-
42
- ### 3. 자동 실행 과정
43
- 1. **CI 실행**: 테스트, 빌드, 린팅
44
- 2. **버전 분석**: 현재 버전 vs NPM 배포 버전 비교
45
- 3. **자동 버전 업데이트**: 필요 시 package.json 및 소스코드 버전 업데이트
46
- 4. **자동 커밋**: 버전 업데이트 커밋 생성 및 푸시
47
- 5. **빌드 및 배포**: TypeScript 빌드 후 NPM 배포
48
- 6. **알림**: Discord 및 콘솔 알림
49
-
50
- ## 📋 사전 설정 요구사항
51
-
52
- ### 1. GitHub Secrets 설정
53
- ```bash
54
- # NPM 토큰 설정 (필수)
55
- NPM_TOKEN=your_npm_token_here
56
-
57
- # Discord 알림 (선택사항)
58
- DISCORD_WEBHOOK_URL=your_discord_webhook_url
59
- ```
60
-
61
- ### 2. NPM 토큰 생성 방법
62
- 1. [npmjs.com](https://www.npmjs.com)에 로그인
63
- 2. Profile → Access Tokens → Generate New Token
64
- 3. **Automation** 타입 선택
65
- 4. 생성된 토큰을 GitHub Repository Settings → Secrets에 `NPM_TOKEN`으로 추가
66
-
67
- ## 🎨 Conventional Commits 가이드
68
-
69
- ### 기본 형식
70
- ```
71
- <type>[optional scope]: <description>
72
-
73
- [optional body]
74
-
75
- [optional footer(s)]
76
- ```
77
-
78
- ### 주요 타입들
79
- | 타입 | 설명 | 버전 영향 |
80
- |------|------|-----------|
81
- | `feat` | 새로운 기능 | Minor |
82
- | `fix` | 버그 수정 | Patch |
83
- | `docs` | 문서 변경 | Patch |
84
- | `style` | 코드 스타일 변경 | Patch |
85
- | `refactor` | 코드 리팩토링 | Patch |
86
- | `test` | 테스트 추가/수정 | Patch |
87
- | `chore` | 빌드/설정 변경 | Patch |
88
- | `!` | Breaking Change | Major |
89
-
90
- ### 실제 예시
91
- ```bash
92
- # 새 기능 추가 (Minor 버전 증가)
93
- git commit -m "feat: add interactive CLI menu"
94
-
95
- # 버그 수정 (Patch 버전 증가)
96
- git commit -m "fix: resolve command parsing error"
97
-
98
- # Breaking Change (Major 버전 증가)
99
- git commit -m "feat!: redesign CLI interface"
100
-
101
- # 상세한 설명이 있는 커밋
102
- git commit -m "feat: add color themes
103
-
104
- - Add dark and light theme options
105
- - Implement theme persistence
106
- - Update help text with theme info"
107
- ```
108
-
109
- ## 🔧 워크플로우 파일 구성
110
-
111
- ### 주요 작업들
112
- 1. **check-ci**: CI 상태 확인
113
- 2. **auto-version**: 자동 버전 업데이트 및 결정
114
- 3. **version-check**: 태그 기반 배포용 버전 확인
115
- 4. **publish**: NPM 배포 실행
116
- 5. **notify**: 결과 알림
117
-
118
- ### 트리거 조건
119
- ```yaml
120
- on:
121
- push:
122
- branches: [main] # main 브랜치 직접 push
123
- tags: ["v*"] # 태그 push
124
- workflow_run:
125
- workflows: ["Continuous Integration"]
126
- types: [completed] # CI 완료 후
127
- branches: [main]
128
- ```
129
-
130
- ## 📊 배포 시나리오
131
-
132
- ### 시나리오 1: 첫 PR merge
133
- ```
134
- 현재 NPM: v1.0.5
135
- 현재 코드: v1.0.5
136
- → 자동으로 v1.0.6으로 업데이트 후 배포
137
- ```
138
-
139
- ### 시나리오 2: 이미 다른 버전인 경우
140
- ```
141
- 현재 NPM: v1.0.5
142
- 현재 코드: v1.0.6
143
- → 버전 업데이트 없이 v1.0.6 즉시 배포
144
- ```
145
-
146
- ### 시나리오 3: 태그 기반 배포
147
- ```
148
- 태그 push: v1.1.0
149
- → 버전 체크만 하고 즉시 배포
150
- ```
151
-
152
- ## 🚨 주의사항
153
-
154
- ### 1. 권한 설정
155
- - GitHub Actions에 repository write 권한 필요
156
- - NPM 토큰이 올바르게 설정되어야 함
157
-
158
- ### 2. 커밋 메시지 규칙
159
- - Conventional Commits 형식 권장
160
- - 명확하고 일관된 메시지 작성
161
-
162
- ### 3. CI/CD 최적화
163
- - `[skip ci]` 태그로 무한 루프 방지
164
- - 버전 업데이트 커밋은 자동으로 CI 건너뛰기
165
-
166
- ## 🎉 장점
167
-
168
- ### ✅ 완전 자동화
169
- - 수동 버전 관리 불필요
170
- - 실수 방지 및 일관성 보장
171
-
172
- ### ✅ Semantic Versioning 준수
173
- - 커밋 메시지 기반 자동 버전 결정
174
- - 표준화된 버전 관리
175
-
176
- ### ✅ 실시간 알림
177
- - Discord 및 콘솔 배포 상태 알림
178
- - 성공/실패 즉시 확인
179
-
180
- ## 🔍 디버깅
181
-
182
- ### 로그 확인 위치
183
- - GitHub Actions → 해당 워크플로우 실행 → 각 작업 로그
184
-
185
- ### 일반적인 문제들
186
- 1. **NPM 토큰 오류**: Secrets 설정 확인
187
- 2. **버전 충돌**: NPM에서 같은 버전 이미 배포됨
188
- 3. **빌드 실패**: TypeScript 컴파일 오류 확인
189
- 4. **권한 오류**: GitHub token 권한 확인
190
-
191
- 이제 PR만 merge하면 자동으로 버전이 업데이트되고 NPM에 배포됩니다! 🚀
@@ -1,82 +0,0 @@
1
- # 배포 가이드
2
-
3
- ## CI/CD 파이프라인
4
-
5
- 이 프로젝트는 모듈화된 GitHub Actions를 사용한 자동 배포 시스템을 구축했습니다.
6
-
7
- > 📖 **워크플로우 구조**: 자세한 내용은 [docs/workflows.md](./workflows.md)를 참고해주세요.
8
-
9
- ### 트리거 조건
10
-
11
- #### 1. Pull Request
12
-
13
- - `main` 브랜치로의 PR 시 테스트와 빌드만 실행
14
- - Node.js와 Bun 두 환경에서 모두 테스트
15
-
16
- #### 2. Main 브랜치 Push
17
-
18
- - `main` 브랜치에 직접 push 시
19
- - 버전이 변경된 경우에만 NPM에 자동 배포
20
- - package.json의 버전과 NPM에 이미 배포된 버전을 비교
21
-
22
- #### 3. 태그 Push
23
-
24
- - `v*` 형태의 태그 push 시 무조건 NPM에 배포
25
- - 예: `v1.0.5`, `v2.1.0`
26
-
27
- ### 배포 워크플로우
28
-
29
- ```mermaid
30
- graph LR
31
- A[Code Push] --> B{브랜치 확인}
32
- B -->|main| C[버전 체크]
33
- B -->|태그| F[즉시 배포]
34
- C -->|변경됨| D[테스트 & 빌드]
35
- C -->|동일함| E[배포 스킵]
36
- D --> F[NPM 배포]
37
- ```
38
-
39
- ### 수동 배포 방법
40
-
41
- #### 1. 버전 업데이트 후 main 브랜치 배포
42
-
43
- ```bash
44
- # 버전 업데이트
45
- npm version patch # 또는 minor, major
46
-
47
- # main 브랜치에 push (자동 배포됨)
48
- git push origin main
49
- ```
50
-
51
- #### 2. 태그를 통한 배포
52
-
53
- ```bash
54
- # 버전 업데이트
55
- npm version patch
56
-
57
- # 태그와 함께 push (즉시 배포됨)
58
- git push origin main --tags
59
- ```
60
-
61
- ### 환경 변수 설정
62
-
63
- GitHub Repository Settings에서 다음 Secret을 설정해야 합니다:
64
-
65
- - `NPM_TOKEN`: NPM 계정의 액세스 토큰
66
-
67
- ### 지원 런타임
68
-
69
- - **Node.js 20.x**: 메인 런타임
70
- - **Bun Latest**: 성능 테스트 및 대안 빌드
71
-
72
- ### 빌드 산출물
73
-
74
- - TypeScript 컴파일된 JavaScript 파일들
75
- - 타입 정의 파일 (.d.ts)
76
- - 소스맵 파일
77
-
78
- ### 주의사항
79
-
80
- 1. **버전 관리**: package.json의 버전을 먼저 업데이트해야 배포됩니다
81
- 2. **테스트 통과**: 모든 테스트가 통과해야 배포가 진행됩니다
82
- 3. **권한**: NPM_TOKEN이 올바르게 설정되어야 합니다
@@ -1,116 +0,0 @@
1
- # NPM 직접 배포 가이드
2
-
3
- ## 🎯 개요
4
-
5
- 이 문서는 GitHub Actions 태그 자동화 없이 NPM에 직접 배포하는 방법을 설명합니다.
6
-
7
- ## 📋 사전 준비사항
8
-
9
- - NPM 계정 및 로그인
10
- - TypeScript 프로젝트 빌드 환경
11
- - 적절한 권한(패키지 소유자 또는 메인테이너)
12
-
13
- ## 🚀 배포 단계
14
-
15
- ### 1. 버전 업데이트
16
-
17
- ```bash
18
- # 패치 버전 자동 증가 (1.0.4 → 1.0.5)
19
- npm version patch
20
-
21
- # 또는 마이너 버전 증가 (1.0.4 → 1.1.0)
22
- npm version minor
23
-
24
- # 또는 메이저 버전 증가 (1.0.4 → 2.0.0)
25
- npm version major
26
- ```
27
-
28
- ### 2. TypeScript 소스 코드 수정
29
-
30
- 버전이 하드코딩된 경우 소스코드도 업데이트:
31
-
32
- ```typescript
33
- // src/index.ts
34
- program.version("1.0.5").description("송민성의 개발자 프로필 CLI");
35
- ```
36
-
37
- ### 3. 프로젝트 빌드
38
-
39
- ```bash
40
- # TypeScript 컴파일
41
- npm run build
42
- ```
43
-
44
- ### 4. NPM 로그인 확인
45
-
46
- ```bash
47
- # 현재 로그인 상태 확인
48
- npm whoami
49
-
50
- # 로그인되지 않은 경우 로그인
51
- npm login
52
- ```
53
-
54
- ### 5. NPM 배포
55
-
56
- ```bash
57
- # 패키지 배포
58
- npm publish
59
- ```
60
-
61
- ## ✅ 배포 성공 확인
62
-
63
- ### 배포된 패키지 정보 확인
64
-
65
- ```bash
66
- # 최신 버전 정보 확인
67
- npm view tylersong
68
-
69
- # 모든 버전 목록 확인
70
- npm view tylersong versions --json
71
- ```
72
-
73
- ### 패키지 설치 및 테스트
74
-
75
- ```bash
76
- # 전역 설치
77
- npm install -g tylersong@latest
78
-
79
- # 실행 테스트
80
- tylersong
81
- ```
82
-
83
- ## 📦 배포 결과 (2024.08.04)
84
-
85
- ### 성공적으로 배포된 버전: `1.0.5`
86
-
87
- - **배포 시간**: 방금 전 (just now)
88
- - **패키지 크기**: 21.0 kB
89
- - **압축 해제 크기**: 58.1 kB
90
- - **포함된 파일**: 19개
91
- - **메인테이너**: miiinsseong <wsc7202@gmail.com>
92
-
93
- ### 전체 버전 히스토리
94
-
95
- ```json
96
- ["1.0.0", "1.0.1", "1.0.3", "1.0.4", "1.0.5"]
97
- ```
98
-
99
- ## 🔧 주요 변경사항 (v1.0.5)
100
-
101
- - ✨ JavaScript에서 TypeScript로 완전 변환
102
- - 📦 타입 정의 파일 포함 (`dist/index.d.ts`)
103
- - 🛠️ 자동 빌드 스크립트 (`prepublishOnly`)
104
- - 📚 상세한 문서화 완료
105
-
106
- ## 💡 팁
107
-
108
- 1. **자동 빌드**: `prepublishOnly` 스크립트가 설정되어 있어 배포 시 자동으로 빌드됩니다.
109
- 2. **타입 안전성**: TypeScript로 변환되어 더 안정적인 코드가 되었습니다.
110
- 3. **버전 관리**: 소스코드의 하드코딩된 버전도 함께 업데이트해야 합니다.
111
-
112
- ## 🚨 주의사항
113
-
114
- - 같은 버전을 두 번 배포할 수 없습니다.
115
- - 배포 전 반드시 빌드와 테스트를 수행하세요.
116
- - NPM 로그인 상태를 확인하세요.
@@ -1,158 +0,0 @@
1
- # Discord 알림 설정 가이드
2
-
3
- GitHub Actions에서 Discord로 빌드 및 배포 알림을 받을 수 있도록 설정하는 방법입니다.
4
-
5
- ## 🎯 Discord Webhook 생성
6
-
7
- ### 1. Discord 서버에서 Webhook 생성
8
-
9
- 1. Discord 서버에서 알림을 받을 채널로 이동
10
- 2. 채널 설정 (⚙️) → **연동** → **웹후크**
11
- 3. **새 웹후크** 버튼 클릭
12
- 4. 웹후크 이름 설정 (예: "GitHub Actions")
13
- 5. 아바타 이미지 설정 (선택사항)
14
- 6. **웹후크 URL 복사** 버튼으로 URL 복사
15
-
16
- ### 2. GitHub Secrets에 Webhook URL 저장
17
-
18
- 1. GitHub 저장소 → **Settings** → **Secrets and variables** → **Actions**
19
- 2. **New repository secret** 클릭
20
- 3. **Name**: `DISCORD_WEBHOOK_URL`
21
- 4. **Secret**: 복사한 Discord 웹후크 URL 붙여넣기
22
- 5. **Add secret** 클릭
23
-
24
- ## 📢 알림 유형
25
-
26
- ### 🔍 CI 알림 (ci.yml)
27
-
28
- **전송 시점**: 모든 CI 작업 완료 후
29
- **포함 정보**:
30
-
31
- - ✅/❌ 전체 CI 결과
32
- - 🌿 브랜치 정보
33
- - 📝 커밋 해시 및 링크
34
- - 🧪 테스트 결과
35
- - 🏗️ 빌드 결과
36
- - 🔍 린팅 결과
37
- - 👤 작업자 정보
38
-
39
- **예시 메시지**:
40
-
41
- ```
42
- ✅ CI 성공 🎉
43
- 모든 테스트, 빌드, 린팅이 성공적으로 완료되었습니다.
44
-
45
- 브랜치: main 커밋: a1b2c3d
46
- 테스트: ✅ 성공 빌드: ✅ 성공
47
- 린팅: ✅ 성공 작업자: tylersong
48
- ```
49
-
50
- ### 🚀 배포 알림 (publish.yml)
51
-
52
- **전송 시점**: NPM 배포 완료 후
53
- **포함 정보**:
54
-
55
- - ✅/❌ 배포 결과
56
- - 📦 새 버전 정보
57
- - 🏷️ 배포 타입 (자동/태그)
58
- - 🌿 브랜치/태그 정보
59
- - 🔗 NPM 패키지 링크
60
- - 💻 설치 명령어
61
- - 👤 배포자 정보
62
-
63
- **예시 메시지**:
64
-
65
- ```
66
- 🚀 패키지 배포 성공 🚀
67
- tylersong v1.0.5이 NPM에 성공적으로 배포되었습니다!
68
-
69
- 버전: v1.0.5 배포 타입: Auto Deploy
70
- 브랜치/태그: main
71
-
72
- NPM: tylersong 패키지
73
- 설치 명령어: npx tylersong
74
- 배포자: tylersong
75
- ```
76
-
77
- ## 🎨 Discord 메시지 스타일
78
-
79
- ### 색상 코드
80
-
81
- - 🟢 **성공**: 초록색 (`00FF00`)
82
- - 🔴 **실패**: 빨간색 (`FF0000`)
83
- - 🟠 **취소**: 주황색 (`FFA500`)
84
- - 🔵 **기본**: Discord 파란색 (`5865F2`)
85
-
86
- ### 이모지 사용
87
-
88
- - ✅ 성공 작업
89
- - ❌ 실패 작업
90
- - ⚠️ 경고/취소
91
- - 🎉 CI 성공
92
- - 🚀 배포 성공
93
- - 💥 오류 발생
94
-
95
- ## 🔧 고급 설정
96
-
97
- ### 알림 비활성화
98
-
99
- Discord 알림을 일시적으로 비활성화하려면:
100
-
101
- 1. GitHub Secrets에서 `DISCORD_WEBHOOK_URL` 삭제 또는
102
- 2. Secret 값을 빈 문자열로 설정
103
-
104
- ### 커스텀 알림
105
-
106
- 특정 상황에서만 알림을 받고 싶다면 워크플로우 파일을 수정:
107
-
108
- ```yaml
109
- - name: Send Discord notification
110
- if: env.DISCORD_WEBHOOK_URL != '' && github.ref == 'refs/heads/main'
111
- # main 브랜치에서만 알림
112
- ```
113
-
114
- ### 멘션 추가
115
-
116
- 특정 사용자나 역할을 멘션하려면 description에 추가:
117
-
118
- ```yaml
119
- echo "description=<@사용자ID> 배포가 완료되었습니다!" >> $GITHUB_OUTPUT
120
- ```
121
-
122
- ## 🛠️ 트러블슈팅
123
-
124
- ### 알림이 오지 않는 경우
125
-
126
- 1. **Discord 웹후크 URL 확인**
127
-
128
- - GitHub Secrets에 올바른 URL이 저장되었는지 확인
129
- - 웹후크가 삭제되지 않았는지 Discord에서 확인
130
-
131
- 2. **권한 확인**
132
-
133
- - 봇/웹후크가 해당 채널에 메시지를 보낼 권한이 있는지 확인
134
-
135
- 3. **워크플로우 로그 확인**
136
- - GitHub Actions 로그에서 Discord 알림 단계 확인
137
- - curl 명령어 실행 결과 확인
138
-
139
- ### 메시지 포맷 오류
140
-
141
- JSON 구문 오류가 발생하면:
142
-
143
- - 필드 값에 특수문자나 따옴표가 있는지 확인
144
- - 멀티라인 텍스트는 적절히 이스케이프 처리
145
-
146
- ### 웹후크 제한사항
147
-
148
- Discord 웹후크 제한사항:
149
-
150
- - 요청당 최대 10개의 embeds
151
- - Embed당 최대 25개의 fields
152
- - 분당 30개 메시지 제한
153
-
154
- ## 📚 참고 자료
155
-
156
- - [Discord Webhook 가이드](https://support.discord.com/hc/ko/articles/228383668)
157
- - [Discord API - Webhook](https://discord.com/developers/docs/resources/webhook)
158
- - [GitHub Actions - Secrets](https://docs.github.com/ko/actions/security-guides/encrypted-secrets)
@@ -1,142 +0,0 @@
1
- # GitHub Actions 수정 사항
2
-
3
- ## 🔧 주요 수정 내용
4
-
5
- ### 1. YAML 구조 문제 수정
6
-
7
- #### CI 워크플로우 (ci.yml)
8
- - **문제**: `lint` job이 `build` job 내부에 잘못 배치됨
9
- - **수정**: 올바른 들여쓰기로 독립적인 job으로 분리
10
-
11
- #### 배포 워크플로우 (publish.yml)
12
- - **문제**: `notify` job이 잘못된 들여쓰기
13
- - **수정**: 올바른 job 레벨로 수정
14
-
15
- ### 2. Job Dependency 문제 수정
16
-
17
- #### 문제점
18
- - `version-check` job이 항상 `check-ci`를 필요로 함
19
- - `check-ci`는 `workflow_run` 이벤트에서만 실행되어 다른 이벤트에서 오류 발생
20
-
21
- #### 수정 방안
22
- ```yaml
23
- check-ci:
24
- if: always() # 모든 이벤트에서 실행
25
- steps:
26
- - name: Check CI workflow status
27
- run: |
28
- if [ "${{ github.event_name }}" == "workflow_run" ]; then
29
- # workflow_run 이벤트에서만 CI 상태 체크
30
- else
31
- # 다른 이벤트에서는 성공으로 가정
32
- echo "success=true" >> $GITHUB_OUTPUT
33
- fi
34
- ```
35
-
36
- ### 3. Discord 알림 조건 수정
37
-
38
- #### 문제점
39
- - `if: env.DISCORD_WEBHOOK_URL != ''` 조건이 작동하지 않음
40
- - Environment variables는 secrets에 접근할 수 없음
41
-
42
- #### 수정 방안
43
- ```yaml
44
- - name: Send Discord notification
45
- if: secrets.DISCORD_WEBHOOK_URL != ''
46
- # secrets 직접 체크로 변경
47
- ```
48
-
49
- ### 4. Deprecated Action 대체
50
-
51
- #### 문제점
52
- - `actions/create-release@v1`은 deprecated됨
53
-
54
- #### 수정 방안
55
- ```yaml
56
- - name: Create GitHub Release
57
- uses: actions/github-script@v7
58
- with:
59
- script: |
60
- await github.rest.repos.createRelease({
61
- // 최신 API 사용
62
- });
63
- ```
64
-
65
- ### 5. Artifact 접근 문제 해결
66
-
67
- #### 문제점
68
- - `workflow_run` 이벤트에서 다른 워크플로우의 artifact 접근 어려움
69
-
70
- #### 수정 방안
71
- - 배포 시 직접 빌드하도록 변경
72
- - CI의 artifact 의존성 제거
73
-
74
- ### 6. Discord JSON 안전성 개선
75
-
76
- #### 문제점
77
- - 특수문자로 인한 JSON 파싱 오류 가능성
78
-
79
- #### 수정 방안
80
- ```bash
81
- # jq를 사용한 안전한 JSON 생성
82
- PAYLOAD=$(jq -n \
83
- --arg title "$TITLE" \
84
- --arg description "$DESCRIPTION" \
85
- '{embeds: [{title: $title, description: $description}]}')
86
- ```
87
-
88
- ## 🚀 개선된 기능
89
-
90
- ### 1. 안정성 향상
91
- - YAML 구문 오류 제거
92
- - Job dependency 안정화
93
- - JSON 파싱 오류 방지
94
-
95
- ### 2. 호환성 개선
96
- - 최신 GitHub Actions 사용
97
- - Deprecated action 제거
98
- - 모든 이벤트 타입 지원
99
-
100
- ### 3. 오류 처리 강화
101
- - curl 명령어에 오류 처리 추가
102
- - 빌드 artifact 검증 강화
103
- - 조건부 실행 로직 개선
104
-
105
- ## 📋 검증 체크리스트
106
-
107
- - [x] YAML 구문 오류 수정
108
- - [x] Job dependency 문제 해결
109
- - [x] Discord 알림 조건 수정
110
- - [x] Deprecated action 대체
111
- - [x] JSON 안전성 개선
112
- - [x] 오류 처리 강화
113
-
114
- ## 🔍 테스트 방법
115
-
116
- ### 1. CI 테스트
117
- ```bash
118
- # Pull Request 생성으로 CI 테스트
119
- git checkout -b test-ci
120
- git push origin test-ci
121
- # PR 생성 후 Actions 탭에서 확인
122
- ```
123
-
124
- ### 2. 배포 테스트
125
- ```bash
126
- # 버전 업데이트 후 main push
127
- npm version patch
128
- git push origin main
129
- # 자동 배포 확인
130
- ```
131
-
132
- ### 3. Discord 알림 테스트
133
- - Discord 웹훅 URL 설정 후
134
- - CI/배포 실행하여 알림 수신 확인
135
-
136
- ## 🛡️ 보안 고려사항
137
-
138
- 1. **Secret 관리**: Discord 웹훅 URL은 반드시 GitHub Secrets에 저장
139
- 2. **권한 최소화**: 필요한 최소 권한만 부여
140
- 3. **환경 분리**: Production 환경에서 안전한 배포
141
-
142
- 이제 GitHub Actions가 안정적으로 작동하며, 모든 이벤트 타입에서 정상적으로 실행됩니다.