diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index c2ba123..91a718e 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -18,35 +18,9 @@ jobs: deploy: runs-on: ubuntu-latest - # clean build 가 테스트(@SpringBootTest 컨텍스트 로드 포함)를 돌리므로 CI와 동일한 DB/Redis 필요 - services: - mariadb: - 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 - + # 배포 잡은 테스트를 돌리지 않으므로 DB/Redis 서비스 컨테이너가 필요 없다. + # → 서비스 컨테이너 후처리(cleanup) hang 으로 "가짜 실패"가 나던 문제 회피. + # 품질(테스트) 게이트는 ci.yaml 이 같은 push 에서 함께 수행한다. steps: - name: Checkout uses: actions/checkout@v4 @@ -58,11 +32,12 @@ jobs: java-version: '17' cache: gradle - # clean build 는 test 를 포함 — 테스트 실패 시 jar 가 생성되지 않아 배포 중단(게이트) - - name: Build jar (테스트 포함) + # 테스트 없이 jar 만 빌드(bootJar) — 서비스 컨테이너/컨텍스트 테스트가 없어 후처리 hang 이 없다. + # (테스트 게이트는 ci.yaml 이 담당) + - name: Build jar (테스트 제외, bootJar) run: | chmod +x ./gradlew - ./gradlew --no-daemon clean build + ./gradlew --no-daemon clean bootJar - name: Deploy (SSH + systemd) env: