특정 러너를 사용하여 빌드를 강화하는 방법

TeamCity는 빌드를 강화하는 많은 기능을 포함하고 있습니다. 이 튜토리얼에서는 특정 러너를 사용하는 방법과 어떠한 경우에 이러한 러너를 사용해야 하는지 살펴봅니다.

빌드 러너란 무엇이며 TeamCity에서 어떤 러너 유형이 제공되나요?

빌드 러너는 특정 빌드 도구(Ant, MSBuild, 명령줄 등)와 통합 가능한 TeamCity 기능입니다. 빌드 러너는 실행할 빌드 작업, 사용할 빌드 도구 버전, 컨테이너로 사용할 Docker/Linux 이미지 등을 지정할 수 있는 설정을 제공합니다. 빌드 구성 시 빌드 러너는 빌드를 실행하고 결과를 보고하는 방법을 정의합니다. TeamCity는 .NET, Maven, Gradle, Docker, Python, Node.js 등 다양한 빌드 러너를 기본으로 제공합니다.

빌드 구성을 열고 편집해 보겠습니다. 여기에 하나의 빌드 단계, 즉 명령줄 빌드 단계가 있습니다. 스크립트가 다음 명령어를 처리합니다.

  • cd 명령어로 계산기 서비스 디렉터리에 들어갑니다.
  • mvn clean package를 실행합니다.
  • .jar 파일을 비공개 S3 버킷에 업로드합니다.
tutorials-img

여기서는 mvn clean package 단계를 없애고 이를 위해 TeamCity의 특정 Maven 기능을 사용합니다. 사용자 지정 스크립트에서 줄을 삭제하고 Save(저장)를 클릭하기만 하면 됩니다.

tutorials-img

새 빌드 단계 추가

그런 다음 새 빌드 단계를 추가합니다. TeamCity가 특정 러너를 선택하도록 제안합니다.

tutorials-img

TeamCity와 통합되는 모든 기술에 맞는 특정 러너를 찾을 수 있습니다. 예를 들어 .NET 프로젝트를 빌드하려는 경우 .NET 러너를 선택합니다. 명령줄 스크립트를 실행하려면 명령줄 러너를 사용합니다. 마찬가지로 Docker 관련 단계에는 Docker 러너를 사용하고 Gradle 프로젝트에는 Gradle 러너를 사용합니다.

TeamCity의 빌드 러너 전체 목록은 이 문서에서 찾을 수 있습니다.

Maven 프로젝트로 작업하고 있으므로 드롭다운 목록에서 Maven을 선택하겠습니다. 그런 다음 이 단계에서 TeamCity가 제안하는 일부 필드를 작성합니다.

tutorials-img

pom.xml 파일은 계산기 서비스 디렉터리에 있으므로 트리 아이콘을 클릭하여 올바른 폴더를 선택하겠습니다. 모든 디렉터리가 트리 모양으로 보기 좋게 표시되므로 디렉터리 이름을 입력하지 않아도 됩니다(맞춤법 오류의 가능성 방지). 목록에서 디렉터리를 선택하기만 하면 됩니다.

Docker 허브에서 Docker 이미지 이름(예: maven:latest)을 제공하여 Docker 컨테이너 내에서 mvn clean package 단계를 실행할 수 있습니다. TeamCity는 이 이미지를 가져와 투명하게 Docker 컨테이너를 시작하고 내부에서 mvn clean package 목표를 실행한 다음, 나중에 컨테이너를 폐기합니다.

tutorials-img

커버리지 러너 선택

수동으로 빌드 단계 구성을 계속하려면 다음 링크를 클릭하세요.

tutorials-img

TeamCity에서 특정 커버리지 러너를 선택할 수 있습니다. 예를 들어 pom.xml 파일 내부에 모두 하드 코딩하는 대신 IntelliJ IDEA 또는 JaCoCo 코드 커버리지 러너를 추가할 수 있습니다.

패키지 패턴 이름으로 com.jetbrains.teamcity.*를 추가하겠습니다. 그러면 TeamCity가 이름이 코드 커버리지 패턴과 일치하는 패키지를 분석합니다.

tutorials-img

TeamCity에서는 고급 옵션을 구성할 수도 있습니다. 예를 들어, 다른 Maven 프로젝트 버전을 선택하거나 특정 Java 버전을 선택하여 전체 프로젝트를 실행할 수 있습니다.

tutorials-img

이러한 모든 UI 옵션을 사용하면서 명령줄 호출이 작동할지 여부를 걱정할 필요가 없습니다. TeamCity가 알아서 처리해줍니다.

이제 명령줄 스크립트가 실행되고 이후 Maven 단계가 실행됩니다. mvn clean package가 먼저 실행된 다음 S3에 명령어줄 업로드가 이루어지도록 빌드 단계의 순서를 바꾸려고 합니다.

tutorials-img

그런 다음 Run(실행)을 클릭하면 모두 예상대로 작동합니다.

Maven 러너로 무엇을 할 수 있나요?

빌드 실행이 완료되면 빌드 개요 페이지에 액세스할 수 있습니다. 여기에서 Maven Build Info(Maven 빌드 정보)Code Coverage(코드 커버리지)와 같은 새로운 탭과 Tests(테스트)Code Coverage(코드 커버리지) 결과에 대한 새로운 섹션을 확인할 수 있습니다.

tutorials-img

Maven 빌드 정보

Maven build info(Maven 빌드 정보) 페이지에서는 특정 Maven 버전으로 실행한 목표에 대한 개요를 볼 수 있습니다. Maven이 생성한 .jar 파일과 같은 생성된 아티팩트도 볼 수 있습니다.

이 보고서는 또한 이 특정 빌드에 대해 Maven이 가져온 해당 버전의 모든 특정 종속성도 보여줍니다. 이를 통해 빌드가 어떤 라이브러리로 구성되었는지 개괄적으로 알 수 있습니다. 디버깅 목적으로도 유용합니다.

또한 해당 빌드 중에 활성화되어 사용된 모든 Maven 플러그인을 볼 수 있습니다.

tutorials-img

테스트 개요 페이지

Maven 러너를 사용하여 무료로 얻을 수 있는 테스트 개요 페이지는 많은 유용한 정보를 제공합니다. 보고서에서 볼 수 있는 내용은 다음과 같습니다.

  • 전체 테스트 상태(성공, 실패, 불안정 등)
  • 실행된 테스트 클래스 및 메서드
  • 테스트에 걸린 시간
  • 테스트가 실행된 순서

또한 모든 테스트에는 테스트에 대한 모든 필수 정보를 제공하는 테스트 기록이 있습니다. 테스트 기록은 "이 테스트가 갑자기 오래 걸리는 이유는 무엇일까?" 또는 "불안정한 테스트인가?”와 같이 테스트 중에 발생할 수 있는 문제를 조사해야 할 때 유용합니다.

이 동영상에서 테스트 보고서를 자세히 다룹니다.

코드 커버리지 보고서

코드 커버리지 보고서는 사용된 클래스 및 메서드에 대한 정보와 테스트에서 처리된 코드의 비율을 제공합니다.

IntelliJ IDEA 코드 커버리지 러너에서 몇 가지 드롭다운 옵션을 선택하기만 하면 TeamCity UI에서 이러한 모든 보고서를 얻을 수 있습니다.

tutorials-img

오늘 소개할 내용은 여기까지입니다! 다른 튜토리얼에서 테스트 보고서 또는 코드 커버리지 보고서와 같은 TeamCity 관련 기능의 사용 방법을 알아보세요.

즐겁게 빌드하세요!