9 Commits

Author SHA1 Message Date
sb 0082e647c2 ci: setup-java 캐시 제거 — 'Save cache' 후처리 hang 회피
Deploy / deploy (push) Successful in 49s
Gitea 캐시 서버 미연결 시 cache:gradle 저장 후처리가 수 분 hang → 가짜 실패 유발.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 09:56:10 +09:00
sb 9b5abedd40 ci(deploy): 배포 잡에서 테스트/서비스 제거 — bootJar 만 빌드
Deploy / deploy (push) Has been cancelled
서비스 컨테이너(MariaDB/Redis) 후처리 cleanup 이 러너에서 멈춰 15분 타임아웃 →
'가짜 실패'로 표시되던 문제 회피. 배포 잡은 clean bootJar 로 jar 만 만들어 ship.
테스트 게이트는 ci.yaml(같은 push 에서 실행)이 담당.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 09:48:20 +09:00
sb 9fdec36758 fix(ci): SQL_INIT_MODE=always 추가 — 컨텍스트 테스트 스키마 초기화
Deploy / deploy (push) Failing after 15m48s
@SpringBootTest(contextLoads) 시작 시 DefaultCategorySeeder 가 테이블을 조회하는데
CI 는 SQL_INIT_MODE 미설정(never)이라 스키마가 없어 BadSqlGrammarException 으로 실패했음.
운영과 동일하게 always 로 초기화 → 애플 로그인 커밋(a10e16c) 배포도 함께 통과.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 00:00:43 +09:00
ByungCheol 4a85902183 test: 인증 컨트롤러 웹 계층 통합테스트 + 배포 게이트 DB 서비스
CI / build (push) Failing after 13m2s
- AuthControllerWebMvcTest(@WebMvcTest): 실제 인터셉터·경로매핑 로드해 검증
  · 보호 경로(verify-password/profile/me) 토큰 없으면 401(500 아님)
  · 유효 토큰이면 컨트롤러 도달(CURRENT_MEMBER 주입), 공개 경로(signup-enabled) 200
  · 단위테스트가 못 잡은 인터셉터 와이어링 누락(이번 500 버그)을 잡는 계층
  · @MapperScan 매퍼는 DB 없는 경량 SqlSessionFactory로 빈 생성만 통과
- deploy.yaml: clean build 가 @SpringBootTest(SbBtApplicationTests) 포함 →
  CI와 동일한 MariaDB/Redis 서비스+env 추가
  (없으면 배포 게이트가 DB 못 붙어 실패 → 직전 게이트 변경이 배포를 깨뜨렸던 문제 수정)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 14:49:48 +09:00
ByungCheol b748f7d48d ci: 배포 워크플로에 테스트 게이트 추가 — 실패 시 배포 중단
CI / build (push) Failing after 15m25s
- deploy.yaml 은 CI와 별개로 push:[main]에 트리거되며 테스트를 건너뛰고 있었음
  (백엔드 bootJar -x test, 프론트 테스트 스텝 없음) → 게이트 무력
- 배포 잡 안에서 테스트를 먼저 실행하도록 변경(Gitea는 워크플로 간 needs 불안정)
  · 백엔드: clean bootJar -x test → clean build (test 포함)
  · 프론트: Install → Test(npm test) → Build 순으로 분리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 14:27:33 +09:00
ByungCheol 43d1b53d01 fix(ci): 기동 폴링(최대 40초)으로 systemctl is-active 오탐 방지
CI / build (push) Failing after 13m36s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 18:22:51 +09:00
ByungCheol cf6d0710f6 fix(ci): SSH 개인키 파일에서 CR 제거 (Windows CRLF 시크릿 대응)
CI / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 17:40:08 +09:00
ByungCheol 614e74be8a ci: 백엔드 자동 배포 구현 (SSH + systemd, main push)
CI / build (push) Has been cancelled
- deploy.yaml: jar 빌드 → scp 전송 → systemctl 재시작
- deploy/sb-backend.service: systemd 유닛 샘플
- deploy/README.md: 시크릿·서버 준비 안내

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 15:55:33 +09:00
ByungCheol 8639ca3d04 ci: Gitea Actions 워크플로 추가
CI / build (push) Failing after 16m32s
- ci.yaml: JDK17 + MariaDB/Redis 서비스 컨테이너 → gradlew clean build → jar 아티팩트
- deploy.yaml: 수동 실행(workflow_dispatch) 배포 템플릿(SSH/scp·Docker 예시)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 15:49:06 +09:00