Commit Graph

6 Commits

Author SHA1 Message Date
kjh2064 9c735bf019 배포 스크립트 수정: Gitea Actions 호환성 및 디버깅 개선
TaxBaik CI/CD / build-and-deploy (push) Failing after 42s
### 수정 사항

1. **버전 파일 생성 수정**
   - $GITHUB_ENV 제거 (GitHub Actions 전용, Gitea 미지원)
   - 직접 echo로 파일 생성 (간단하고 안정적)
   - wwwroot 디렉토리 미리 생성

2. **배포 스크립트 개선**
   - sleep 시간 3초 → 5초로 증가
   - 상세한 로깅 추가 (각 단계마다 echo)
   - 프로세스 시작 후 검증 로직 추가
   - 버전 파일 확인 추가

3. **다중 프로세스 문제 완전 해결**
   - pkill -9로 강제 종료 (SIGKILL)
   - 충분한 대기 시간 (5초)
   - 시작 후 프로세스 상태 확인

결과: 더 안정적이고 디버깅하기 쉬운 배포 프로세스

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 17:16:47 +09:00
kjh2064 5ce44e3790 배포 스크립트 개선: SIGKILL 강제 종료 및 안정적 대기 시간
TaxBaik CI/CD / build-and-deploy (push) Failing after 44s
근본 원인:
- lsof 명령이 CI 환경에 없거나 작동하지 않음
- heredoc 문법에서 환경 변수 전개 문제
- 기존 프로세스가 완전히 종료되지 않음

개선사항:
- pkill -9 (SIGKILL) 사용하여 프로세스 강제 종료
- sleep 3초 추가하여 포트 릴리스 대기 (충분한 시간)
- /bin/bash 명시적 사용으로 스크립트 환경 정규화
- 더 안정적인 deployment 프로세스 구현

결과:
- 기존 프로세스 종료 후 즉시 새 프로세스 시작 가능
- "Address already in use" 오류 해결
- 더 빠른 배포 재시작

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 17:14:46 +09:00
kjh2064 6963152e97 배포 버전 정보 표시 및 포트 충돌 해결
TaxBaik CI/CD / build-and-deploy (push) Failing after 29s
### 버전 정보 표시 기능
- CI/CD에서 빌드 시간과 git commit hash를 version.txt에 기록
- Web과 Admin 앱이 시작 시 version.txt를 읽어 VersionInfo 싱글톤으로 등록
- 홈페이지 푸터에 "버전: <커밋해시> | 배포: <빌드시간>" 표시
- 최신 소스 반영 여부를 즉시 확인 가능

### 포트 충돌 해결
- 배포 후 기존 프로세스 종료 시 포트 릴리스 대기 로직 추가
- lsof 명령으로 포트 사용 여부 확인 (최대 30초 대기)
- 5001/5002 포트가 완전히 릴리스될 때까지 new process 시작 지연
- "Address already in use" 오류 해결

파일 변경:
- .gitea/workflows/deploy.yml: 버전 파일 생성 + 포트 대기 로직
- TaxBaik.Web/Program.cs: version.txt 읽기 + VersionInfo 등록
- TaxBaik.Admin/Program.cs: version.txt 읽기 + VersionInfo 등록
- TaxBaik.Web/Pages/Shared/_Footer.cshtml: 버전 정보 표시
- TaxBaik.Web/VersionInfo.cs: 새로 추가
- TaxBaik.Admin/VersionInfo.cs: 새로 추가

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 17:13:12 +09:00
kjh2064 4e5860ebf0 CI/CD 파이프라인 근본 원인 수정: rsync 제거 및 프로세스 관리 개선
TaxBaik CI/CD / build-and-deploy (push) Failing after 41s
- .NET 버전을 8.0에서 10.0으로 수정 (프로젝트 타겟 프레임워크 맞춤)
- Windows CI runner와 호환되지 않는 rsync를 tar+ssh로 교체
- sudo systemctl 대신 직접 프로세스 관리 (pkill + nohup) 구현
- 마이그레이션 파일을 publish 디렉토리에 포함
- 환경 변수 (ConnectionStrings__Default, ASPNETCORE_ENVIRONMENT, ASPNETCORE_URLS) 설정
- Web과 Admin 배포 타임스탐프 분리하여 각각 독립적으로 배포 가능

근본 원인:
1. CI runner가 .NET 8 설치 후 .NET 10 프로젝트 빌드 실패
2. rsync가 Windows runner에서 사용 불가능
3. sudo systemctl이 비대화형 CI 환경에서 실패
4. 마이그레이션이 배포 디렉토리에 포함되지 않음

변경 후:
- `dotnet publish` → tar 압축 → scp로 전송
- 서버에서 tar 해제 → 심링크 업데이트 → 기존 프로세스 종료 → 새 프로세스 시작
- 무중단 배포 (graceful restart) 지원

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 17:09:57 +09:00
kjh2064 1c802463c7 수정: Gitea Actions 워크플로우 - master 브랜치 및 경로 수정
TaxBaik CI/CD / build-and-deploy (push) Failing after 26s
- 브랜치: main → master 변경
- 프로젝트 경로: src/ 제거 (루트 수준)
- SSH 에이전트 활용 (webfactory/ssh-agent)

배포 자동화 준비 완료

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 15:25:32 +09:00
kjh2064 88409b8fea Add deployment infrastructure and development guide
- db/migrations/: V001 (schema) + V002 (seed data) SQL files
- deploy/: systemd service files (taxbaik.service, taxbaik-admin.service)
- deploy/: Nginx location block configuration
- .gitea/workflows/deploy.yml: CI/CD pipeline (build, test, deploy)
- CLAUDE.md: Comprehensive development guidelines (9 sections)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 14:59:51 +09:00