Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • I intern-homework-was
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • mingyeong.cha
  • intern-homework-was
  • Issues
  • #3
Closed
Open
Issue created Sep 15, 2026 by mingyeong.cha@mingyeong.chaOwner

[bug] GitLab CI 오류를 해결하기 위한 CI 설정

name: Bug Report
labels: 'Type : Bug'

버그 내용

GitLab CI 파이프라인의 test 작업이 실패해 MR 빌드가 통과되지 않는다. 원인은 두 가지다. 1. CI의 Java버전 프로젝트 요구 버전이 달랐고, 2 테스트가 접속할 DB가 CI 환경에 없었다.

발생 상황

  • feat/#1-프로젝트-골격, test/#1-테스트-코드 브랜치를 push하면 GitLab 기본 파이프라인(AutoDevOps)이 test 작업을 자동 실행한다.
  • 저장소에 .gitlab-ci.yml이 없어 gliderlabs/herokuish 이미지로 herokuish buildpack test가 돌았다.
  • 1차: Java 버전을 적은 파일(system.properties)이 없는 상태에서 실행됐다.
  • 2차: system.properties(Java 21)를 추가하고 SlexnWasApplicationTests(@SpringBootTest)를 커밋한 뒤 실행됐다.

실제 결과

  • 1차: ./gradlew testClasses 단계에서 빌드 실패
    • CI가 기본값인 OpenJDK 25를 설치했는데, build.gradle은 Java 21을 요구해 버전을 찾지 못했다.
  • 2차: ./gradlew test 단계에서 contextLoads() 테스트 실패
    • application.yml의 DB 주소가 localhost:5432, slexn_app 계정으로 고정돼 있다.
    • CI에는 이 주소의 DB, 계정, pgvector 확장이 없어 ApplicationContext를 띄우지 못했다.
  • 로컬에서는 Java 21과 docker-compose PostgreSQL이 있어 재현되지 않았다.

추가 정보

  • 1차 에러 로그
    Cannot find a Java installation on your machine (Linux 5.15.0-153-generic amd64)
    matching: {languageVersion=21, ...}. Toolchain download repositories have not been configured.
  • 2차 에러 로그 (로컬에서 DB 없이 재현)
    SlexnWasApplicationTests > contextLoads() FAILED
    Failed to load ApplicationContext
    Caused by: CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
    Caused by: PSQLException: Connection refused

조치

  • system.properties에 java.runtime.version=21 추가 (7bf9679)
  • .gitlab-ci.yml 추가 (41b6dc1): eclipse-temurin:21-jdk 이미지와
    pgvector/pgvector:0.8.0-pg16 DB 서비스를 쓰고, docker/init/01-app-role.sh로 DB를 초기화하며, SPRING_DATASOURCE_URL로 접속 주소를 바꾼다.
  • CI와 같은 구성을 로컬 Docker로 실행해 BUILD SUCCESSFUL을 확인했다. 실제 GitLab 러너에서는 아직 확인하지 않았다.
  • 관련 이슈: #1 (closed)
Assignee
Assign to
Time tracking