IT 개발,관리,연동,자동화

젠킨스로 스프링부트 프로젝트 빌드 (GitHub, Maven) 상세 가이드: CI/CD 자동화의 시작

_Blue_Sky_ 2024. 11. 11. 20:29
728x90
728x90

 

안녕하세요! 오늘은 젠킨스를 활용하여 GitHub에 있는 스프링부트 프로젝트를 Maven으로 빌드하고, 나아가 CI/CD 파이프라인을 구축하는 방법에 대해 자세히 알아보겠습니다.

왜 젠킨스를 사용할까요?

젠킨스는 오픈 소스 CI/CD(Continuous Integration/Continuous Delivery) 자동화 서버로, 소프트웨어 개발 과정에서 반복적인 작업을 자동화하고, 빌드, 테스트, 배포를 효율적으로 관리할 수 있도록 도와줍니다. 특히, 스프링부트 프로젝트와 같은 자바 기반 프로젝트에서 널리 사용되며, 다양한 플러그인을 통해 확장성이 뛰어납니다.

준비물

  • 젠킨스 설치: 젠킨스 공식 문서를 참고하여 서버에 젠킨스를 설치합니다.
  • GitHub 계정: 스프링부트 프로젝트를 저장할 GitHub 계정이 필요합니다.
  • Maven 설치: 프로젝트 빌드를 위한 Maven이 설치되어 있어야 합니다.
  • 스프링부트 프로젝트: 빌드하고 싶은 스프링부트 프로젝트를 준비합니다.

젠킨스 설정

  1. 플러그인 설치: 젠킨스 관리 화면에서 GitHub Plugin, Maven Integration Plugin 등 필요한 플러그인을 설치합니다.
  2. 글로벌 도구 설정: Maven을 글로벌 도구로 설정하여 젠킨스에서 Maven을 사용할 수 있도록 합니다.
  3. 크레덴셜 설정: GitHub에 접근하기 위한 크레덴셜을 설정합니다.

젠킨스 Job 생성

  1. 새로운 Item 생성: 젠킨스 대시보드에서 새로운 Item을 생성하고, Freestyle project를 선택합니다.
  2. 소스 코드 관리: GitHub에 있는 프로젝트를 연결하고, 브랜치를 선택합니다.
  3. 빌드 트리거: GitHub webhook을 설정하여 코드 변경 시 자동으로 빌드가 실행되도록 합니다.
  4. 빌드 단계: Maven goals을 설정하여 프로젝트를 빌드합니다 (예: clean package).
  5. 빌드 후 조치: 빌드 결과를 확인하고, 필요한 경우 배포 작업을 수행합니다.

빌드 자동화 및 배포

  • 빌드 성공 시: 빌드가 성공하면 생성된 jar 파일을 배포 서버로 전송하거나, Docker 이미지를 생성하여 컨테이너 환경에 배포합니다.
  • 빌드 실패 시: 빌드가 실패하면 알림을 받고, 문제를 해결합니다.

추가 기능

  • 테스트 자동화: JUnit 등 테스트 프레임워크를 활용하여 단위 테스트를 자동으로 실행하고, 테스트 커버리지를 측정할 수 있습니다.
  • 코드 품질 관리: SonarQube 등 코드 품질 관리 도구를 연동하여 코드 품질을 분석하고 개선할 수 있습니다.
  • Docker 연동: Docker 이미지를 생성하고, 컨테이너 환경에 배포하는 파이프라인을 구축할 수 있습니다.
  • Kubernetes 연동: Kubernetes 클러스터에 애플리케이션을 배포하고 관리할 수 있습니다.

  • 젠킨스 파이프라인: 복잡한 빌드 및 배포 과정을 파이프라인으로 정의하여 관리할 수 있습니다.
  • 환경 변수: 빌드 환경에 따라 다른 설정을 사용해야 할 경우, 환경 변수를 활용합니다.
  • 로그 분석: 빌드 로그를 분석하여 문제 발생 시 원인을 파악합니다.

결론

젠킨스를 활용하여 스프링부트 프로젝트를 자동으로 빌드하고 배포하는 CI/CD 파이프라인을 구축하면 개발 생산성을 향상시키고, 소프트웨어 품질을 높일 수 있습니다. 이 가이드를 바탕으로 여러분만의 CI/CD 환경을 구축해 보세요!

728x90
728x90