TeamCity를 사용하여 .NET 프로젝트 빌드

이 가이드는 TeamCity로 .NET 프로젝트를 빌드하는 방법을 보여주며 TeamCity를 완전히 처음 접하는 개발자에게 권장됩니다.

전제 조건

.NET 및 .NET CLI에 대한 기본적인 이해를 권장합니다. For more information, see the Getting Started guide in the .NET documentation.

1단계 – TeamCity 프로젝트 만들기

  1. TeamCity 페이지의 오른쪽 상단에 있는 Administration(관리) 톱니바퀴를 클릭합니다.
  2. + Create Project(+ 프로젝트 만들기)를 클릭하고 From a repository URL(저장소 URL에서) 탭을 선택합니다. In the Repository URL field, enter your repository, for example: https://github.com/matkoch/teamcity-dotnet.git. TeamCity는 Git, Subversion, Mercurial, Perforce 및 TFS(TeamCity Cloud + On-Premises) 등 널리 사용되는 모든 버전 관리 시스템을 즉시 처리합니다. CVS, StarTeam 및 Visual SourceSafe 지원은 TeamCity On-Premises에서만 가능합니다.
  3. 저장소에 인증이 필요한 경우, 사용자 이름과 비밀번호/액세스 토큰을 입력합니다.
  4. Proceed(진행)를 클릭합니다.

TeamCity가 저장소에 성공적으로 연결되면 다음 대화 상자가 표시됩니다.

Create Project From URL(URL에서 프로젝트 만들기) 대화상자에 프로젝트 이름과 초기 빌드 구성 이름을 변경할 수 있는 옵션이 있습니다.

참고: 최신 버전의 TeamCity에서는 TeamCity가 빌드해야 하는 브랜치를 지정할 수 있는 Default branch(기본 브랜치)Branch specification(브랜치 사양) 필드도 볼 수 있습니다. 지금은 무시하세요.

  • TeamCity가 기본 프로젝트 이름을 제안하지만 원하는 경우 프로젝트에 더 적합한 이름을 선택할 수 있습니다.
  • 모든 TeamCity 프로젝트는 프로젝트를 빌드하는 데 필요한 모든 단계를 포함하는 하나 이상의 빌드 구성으로 이루어집니다. TeamCity의 빌드 구성은 다른 CI 시스템에서 종종 잡(job)이라고 부릅니다. 지금은 "Build"의 기본 빌드 구성 이름을 사용할 수 있습니다.

Proceed(진행)를 클릭하면 TeamCity가 버전 관리 저장소에서 지원되는 기술(이 경우 .NET)을 자동으로 검색합니다.

TeamCity가 저장소에서 솔루션 파일(*.sln)을 찾으면 dotnet build로 .NET 솔루션을 컴파일하고 dotnet test로 모든 테스트를 실행하는 프로젝트의 빌드 단계를 자동으로 제안합니다.

빌드 단계를 빌드 구성과 혼동하지 마세요. 빌드 구성에는 잠재적으로 많은 빌드 단계가 포함될 수 있습니다.

.NET 빌드 단계 체크박스를 선택하고 Use selected(선택 항목 사용)를 클릭합니다.

이제 TeamCity로 .NET 저장소를 성공적으로 구성했습니다.

2단계 – 첫 빌드 실행하기

이제 다음과 같이 오른쪽 상단의 Run(실행) 버튼을 눌러 첫 빌드를 실행할 수 있습니다.

참고: TeamCity Cloud를 사용하는 경우 빌드 에이전트를 사용하려면 최대 2분 정도 기다려야 할 수 있습니다. 사용 가능한 에이전트에 의해 선택될 때까지 빌드가 당분간 대기열에 놓여집니다.

로컬 빌드 에이전트와 함께 TeamCity On-Premises를 사용하는 경우, 빌드가 즉시 시작됩니다.

빌드가 시작되면 빌드 개요 페이지로 이동하며, 이 페이지에서 빌드와 관련된 실시간 데이터를 표시하는 Build Log(빌드 로그)가 열립니다.

빌드 실행이 완료되면 테스트 결과를 보거나 전체 빌드 로그를 찾아 볼 수 있습니다.

3단계 – .NET TeamCity 프로젝트 구성하기

이제 .NET 저장소가 TeamCity에 연결되었으므로 코드를 계속 개발하고 저장소에 푸시할 수 있습니다.

기본적으로, TeamCity는 VCS 저장소의 메인 브랜치를 60초마다 폴링하여 수신한 변경 사항이 있는지 확인하고 탐지된 모든 커밋에 대해 하나의 (결합된) 빌드를 트리거합니다.

브랜치 빌드

기본 브랜치뿐만 아니라 저장소의 모든 브랜치에 대한 모든 변경 사항에 대해 빌드를 트리거하려면 VCS 루트 설정에 와일드카드 브랜치 사양을 추가하세요. VCS 설정은 단일 빌드 구성이 아니라 TeamCity 프로젝트에 속합니다. 따라서 변경 사항은 동일한 VCS 루트를 사용하는 모든 빌드 구성에 적용됩니다.

  1. 프로젝트의 개요 페이지에서 Edit Project(프로젝트 편집)를 클릭합니다. 또는 Build(빌드) 빌드 구성이 열려 있는 경우, Edit Configuration(구성 편집)을 클릭합니다.
  2. VCS Roots(버전 관리 시스템)로 이동하여 VCS 루트를 편집합니다.
  3. Branch Specification(브랜치 사양) 입력 필드를 입력하고 Save(저장)를 클릭합니다. Branch Specification(브랜치 사양) 입력 필드가 보이지 않으면 먼저 Show Advanced(고급 표시)를 클릭하세요.

브랜치 사양의 예 :

  • +:refs/heads/* – TeamCity는 프로젝트의 모든 브랜치에서 변경 사항을 확인하지만 refs/pull/*와 일치하기 때문에 GitHub와 같은 플랫폼에서 풀 요청을 확인하지는 않습니다.
  • +:* – TeamCity는 모든 브랜치에서 수신되는 모든 변경 사항을 확인합니다.
  • 자체 사용자 지정 브랜치 사양.

TeamCity는 이제 브랜치 사양을 따르고 저장소로 푸시되는 모든 브랜치를 모니터링하여 수신 변경 사항을 확인하고 그에 따라 빌드를 실행합니다.

풀 리퀘스트 빌드

TeamCity가 저장소에 대해 생성된 풀 요청을 자동으로 빌드하도록 하려면 빌드 구성에 풀 요청 빌드 기능을 추가할 수 있습니다.

  1. 빌드 구성을 열고 Edit Configuration(구성 편집)을 클릭합니다.
  2. Build Features(빌드 기능)로 이동하여 Add Build Feature(빌드 기능 추가)를 클릭합니다. Build Features(빌드 기능) 링크가 보이지 않으면 Show More(더 보기)를 클릭합니다.
  3. 드롭다운에서 Pull Requests(풀 요청)를 선택하고 저장소와 저장소 공급자(GitHub, GitLab 등)를 선택합니다.
  4. 필요에 따라, 작성자 또는 브랜치 이름별로 Pull Request Filtering(풀 요청 필터링)을 적용합니다.

참고: Pull Request(풀 요청) 빌드 기능은 브랜치 사양을 투명하게 확장합니다(자세한 내용은 이전 단계 참조). 예를 들어 GitHub의 경우 풀 요청 기능은 (보이지 않게) 브랜치 사양에 +:refs/pull/*을 추가합니다.

풀 요청 기능을 사용할 때 풀 요청 브랜치가 일반 브랜치 사양에 포함되지 않도록 하는 것이 좋습니다. 그렇지 않으면 풀 요청 관련 기능을 TeamCity에서 사용할 수 없게 됩니다.

TeamCity는 이제 외부 플랫폼에서 풀 요청을 확인하고 구성 규칙과 일치하는 풀 요청에 대해 빌드를 트리거합니다.

참고: 빌드하려는 생각이 없는 저장소에 누군가가 유해한 코드를 푸시할 수 있으므로 공개 저장소에서는 이 기능을 주의해서 사용해야 합니다.

Commit Status Publisher(커밋 상태 게시자)

When using the pull requests feature in combination with Azure DevOps, Bitbucket Server, GitHub, or GitLab, it also makes sense to use the Commit Status Publisher build feature. 이 기능은 빌드 결과와 함께 해당 플랫폼에서 풀 요청의 상태를 업데이트합니다.

빌드 결과를 GitHub에 다시 보고하도록 TeamCity를 설정하려면 다음 단계를 따라야 합니다.

  1. 빌드 구성을 열고 Edit Configuration(구성 편집)을 클릭합니다.
  2. Build Features(빌드 기능)로 이동하여 Add Build Feature(빌드 기능 추가)를 클릭합니다.
  3. 드롭다운에서 Commit Status Publisher(커밋 상태 게시자)를 선택하고 저장소와 게시자(GitHub, GitLab 등)를 선택합니다.
  4. 커밋 상태를 게시할 수 있는 충분한 권한이 있는 액세스 토큰을 제공합니다.
  5. Save(저장)를 클릭합니다.

TeamCity가 빌드를 실행하면 이제 GitHub의 Pull Request(풀 요청) 탭(녹색 체크 표시)에서 변경 사항으로 인해 빌드에 실패했는지 여부를 쉽게 확인할 수 있습니다.