서비스 컨테이너(MariaDB/Redis) 후처리 cleanup 이 러너에서 멈춰 15분 타임아웃 → '가짜 실패'로 표시되던 문제 회피. 배포 잡은 clean bootJar 로 jar 만 만들어 ship. 테스트 게이트는 ci.yaml(같은 push 에서 실행)이 담당. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -18,35 +18,9 @@ jobs:
|
|||||||
deploy:
|
deploy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
# clean build 가 테스트(@SpringBootTest 컨텍스트 로드 포함)를 돌리므로 CI와 동일한 DB/Redis 필요
|
# 배포 잡은 테스트를 돌리지 않으므로 DB/Redis 서비스 컨테이너가 필요 없다.
|
||||||
services:
|
# → 서비스 컨테이너 후처리(cleanup) hang 으로 "가짜 실패"가 나던 문제 회피.
|
||||||
mariadb:
|
# 품질(테스트) 게이트는 ci.yaml 이 같은 push 에서 함께 수행한다.
|
||||||
image: mariadb:11
|
|
||||||
env:
|
|
||||||
MARIADB_ROOT_PASSWORD: ci_root_pw
|
|
||||||
MARIADB_DATABASE: sb_db
|
|
||||||
options: >-
|
|
||||||
--health-cmd="healthcheck.sh --connect --innodb_initialized"
|
|
||||||
--health-interval=10s
|
|
||||||
--health-timeout=5s
|
|
||||||
--health-retries=15
|
|
||||||
redis:
|
|
||||||
image: redis:7
|
|
||||||
options: >-
|
|
||||||
--health-cmd="redis-cli ping"
|
|
||||||
--health-interval=10s
|
|
||||||
--health-timeout=5s
|
|
||||||
--health-retries=10
|
|
||||||
|
|
||||||
env:
|
|
||||||
DB_URL: jdbc:mariadb://mariadb:3306/sb_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Seoul
|
|
||||||
DB_USERNAME: root
|
|
||||||
DB_PASSWORD: ci_root_pw
|
|
||||||
REDIS_HOST: redis
|
|
||||||
REDIS_PORT: '6379'
|
|
||||||
# 컨텍스트 테스트(@SpringBootTest)가 스키마를 필요로 함(시작 시 기본분류 시더가 테이블 조회) → 운영과 동일하게 스키마 초기화
|
|
||||||
SQL_INIT_MODE: always
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -58,11 +32,12 @@ jobs:
|
|||||||
java-version: '17'
|
java-version: '17'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
|
|
||||||
# clean build 는 test 를 포함 — 테스트 실패 시 jar 가 생성되지 않아 배포 중단(게이트)
|
# 테스트 없이 jar 만 빌드(bootJar) — 서비스 컨테이너/컨텍스트 테스트가 없어 후처리 hang 이 없다.
|
||||||
- name: Build jar (테스트 포함)
|
# (테스트 게이트는 ci.yaml 이 담당)
|
||||||
|
- name: Build jar (테스트 제외, bootJar)
|
||||||
run: |
|
run: |
|
||||||
chmod +x ./gradlew
|
chmod +x ./gradlew
|
||||||
./gradlew --no-daemon clean build
|
./gradlew --no-daemon clean bootJar
|
||||||
|
|
||||||
- name: Deploy (SSH + systemd)
|
- name: Deploy (SSH + systemd)
|
||||||
env:
|
env:
|
||||||
|
|||||||
Reference in New Issue
Block a user