이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

Azure Pipelines를 사용하는 Visual Studio Code

2018년 9월 12일 João Moreno, @joaomoreno

Visual Studio Code 팀의 개발자로서 제가 맡은 책임 중 하나는 빌드 및 지속적 통합(CI) 인프라를 유지 관리하고 개선하는 것입니다. Azure Pipelines의 최신 기능 발표를 통해 Visual Studio Code 팀은 Microsoft 기술을 활용하여 개발자와 사용자 모두에게 더 나은 협업 플랫폼을 제공하는 방식을 극적으로 변경했습니다. 이 블로그 게시물에서는 Visual Studio Code의 역사, CI 프로세스 및 도구, 그리고 시간이 지남에 따라 어떻게 변화했는지에 초점을 맞춰 안내해 드리겠습니다.

Visual Studio Code 엔지니어링

다른 모든 오픈 소스 프로젝트와 마찬가지로 가능한 한 많은 코드 기여를 받고, 분류하고, 처리할 수 있는 올바른 도구와 기능을 갖추어야 합니다. 특히 사용자가 개발자인 개발자 도구 환경에서는 더욱 그렇습니다. 그들은 열정적이고 열심히 일하며 매우 효과적인 그룹입니다. 이 블로그 게시물 현재, 148개의 열린 PR과 3,482개의 닫힌 PR이 있으며, 이는 3년의 프로젝트 수명 동안 하루 평균 약 3개의 PR에 해당합니다. 프로젝트 개발을 건전하게 유지할 뿐만 아니라 다른 오픈 소스 프로젝트에 대규모 운영 방식을 보여주는 예시를 제공하기 위해 이 규모의 기여를 처리할 수 있는 준비가 되어 있다는 것은 중요합니다. 이를 수행하는 방법의 일부는 PR 경험을 편집기로 가져오는 것으로 워크플로우를 간소화하는 것이지만, CI는 대규모 기여를 처리하는 또 다른 중요한 부분입니다.

아주 최근까지 우리는 공개 지속적 통합을 위한 OSS 커뮤니티의 기본 선택에 의존했습니다. Linux 및 macOS 빌드의 경우 Travis CI, Windows의 경우 AppVeyor였습니다. 또한 자세한 테스트 커버리지 보고서를 제공하기 위해 Coveralls를 사용했습니다. 이러한 서비스는 공개 저장소의 PR 및 코드 브랜치에 대한 품질 보고서를 제공합니다. 이는 컴파일, 코드 위생 검사 실행 및 여러 테스트 제품군 실행을 자동화하기 때문입니다. 이는 분산된 팀에서 많은 수의 기여를 처리할 때 품질을 유지하는 데 필수적입니다. 이러한 서비스의 조합은 각자 고유한 특수 파일 형식, 구문, 특징, 제한 사항 등을 가진 최소 3개의 서로 다른 시스템을 이해하고 유지 관리해야 합니다.

Azure Pipelines 채택

올해 초 Azure Pipelines(당시 Visual Studio Team Services) 팀에서 연락이 와서 새로운 것을 시험해 보라는 제안을 받았습니다. 이 발표는 더욱 통합된 지속적 통합 솔루션으로의 전환을 의미합니다. 이제 빌드는 모든 플랫폼에서 동시에 실행됩니다. 확인해보세요.

VSCode Project Build Page

이동을 위해 많은 멋진 일들이 필요했습니다. 분해해 보겠습니다.

  1. Azure Pipelines의 공개 프로젝트 지원을 통해 모든 지속적 통합 빌드가 실행되는 공개 Visual Studio Code 프로젝트를 실행할 수 있습니다.
  2. Azure Pipelines의 빌드 에이전트는 Windows, macOS 및 Linux 플랫폼 행렬을 오랫동안 지원해 왔습니다.
  3. macOS, Linux 및 Windows에서 실행되는 Azure Pipelines의 Microsoft 호스트 에이전트는 빌드 머신 유지 관리에 대한 걱정 없이 프로젝트를 빌드할 수 있는 훌륭한 소프트웨어 스택을 제공합니다.
  4. YAML CI는 프로젝트 소스에 가깝게 유지되는 YAML 정의를 생성할 수 있습니다(Visual Studio Code는 훌륭한 확장 프로그램을 제공합니다).

이 모든 것을 통합하여 마침내 단일 CI 솔루션에 집중할 수 있게 되었습니다. Azure Pipelines의 Visual Studio Code 빌드는 컴파일, 위생 검사 및 테스트 제품군을 단일 빌드에서 실행하며 다양한 플랫폼으로 빌드를 자동으로 분산합니다. Microsoft 호스트 빌드 에이전트를 사용하므로 해당 머신을 유지 관리할 필요가 없습니다.

타사 통합

Azure Pipelines는 GitHub 통합도 제공하므로 GitHub 프로젝트 페이지, 특히 pull request에서 빌드 결과 표시기를 얻을 수 있습니다.

Pull Request Integration

또한 Azure Pipeline의 REST API에 연결되는 채팅 봇을 구축하여 빌드가 실패할 때 내부 채팅에 알림을 제공합니다.

Chat Bot Automation

앞으로

제 다음 작업은 이전 도구 조합보다 더 나은 엔드투엔드 CI 흐름을 얻기 위해 코드 커버리지 보고서를 활용하는 것입니다.

Azure Pipelines로 전환한 것은 우리에게 큰 성공을 거두었습니다. 빌드가 여기저기 흩어져 있지 않기 때문에 전반적인 코드 품질을 더 쉽게 파악할 수 있습니다. 또한 빌드 정의 파일의 수와 형식을 통합했습니다. 변경 사항에 매우 만족하며 Azure Pipelines의 미래가 기대됩니다.


공개 프로젝트와 Azure Pipelines에 대해 자세히 알고 싶으시면 블로그 게시물을 확인해 보세요.

Visual Studio Code를 사용해 보고 싶으신가요? 원하는 플랫폼에서 지금 다운로드하세요. 그리고 우리처럼 항상 최신 최고의 버전을 실행하고 싶다면 매일 빌드되는 Insider 릴리스를 받으세요. 단순히 연락하거나 최신 소식을 받고 싶으신가요? Twitter에서 @code를 팔로우하세요.

VS Code 팀을 대표하여: 즐거운 코딩 되세요!

João Moreno, @joaomoreno

© . This site is unofficial and not affiliated with Microsoft.