연습 - 패키지의 파이프라인 만들기
여기서는 Tailspin.SpaceGame.Web 프로젝트와 분리된 Tailspin.SpaceGame.Web.Models 프로젝트에 대한 팀의 새 코드를 가져옵니다. 모델 프로젝트에 대한 Azure Pipelines 프로젝트를 만들고 피드에서 버전 번호가 1.0.0인 Azure Artifacts의 아티팩트를 확인합니다.
프로젝트에 어떤 변경 내용이 적용되었나요?
Space Game 웹 사이트는 ASP.NET Core 앱임을 기억하세요. MVC(Model-View-Controller) 패턴을 사용하여 해당 데이터가 사용자 인터페이스에 표시되는 방식과 데이터를 구분합니다. Andy와 Mara는 여러 프로젝트에서 해당 클래스를 사용할 수 있도록 모델 클래스를 별도의 라이브러리로 이동하려고 합니다.
이를 위해 모델 클래스만 포함하는 Tailspin.SpaceGame.Web.Models 라는 새 C# 프로젝트를 만듭니다. 동시에 기존 프로젝트 Tailspin.SpaceGame.Web에서 모델 클래스를 제거합니다. 기존 프로젝트의 모델 클래스를 Tailspin.SpaceGame.Web.Models 프로젝트에 대한 참조로 바꿉니다.
이러한 프로젝트를 빌드하기 위해 Andy와 Mara는 각 프로젝트에 하나씩 두 개의 파이프라인을 사용합니다. 첫 번째 프로젝트와 연결된 Azure Pipelines 구성이 이미 있습니다. 여기서는 GitHub에서 두 번째 프로젝트를 포크하고 빌드할 Azure Pipelines 구성을 만듭니다. 결과 패키지를 Azure Artifacts에 게시합니다.
Visual Studio Code 준비
이전에는 Tailspin.SpaceGame.Web 프로젝트를 사용하도록 Visual Studio Code를 설정했습니다. 여기서 Tailspin.SpaceGame.Web.Models 프로젝트를 작업할 수 있도록 Visual Studio Code의 두 번째 인스턴스를 엽니다.
Visual Studio Code의 두 번째 인스턴스를 엽니다.
Visual Studio Code에서 통합 터미널을 엽니다.
mslearn-tailspin-spacegame-web 프로젝트가 있는 부모 디렉터리로 이동합니다. 홈 디렉터리로 이동하는 예제는 다음과 같습니다.
cd ~
소스 코드 가져오기
GitHub에서 Tailspin.SpaceGame.Web.Models 프로젝트의 소스 코드를 가져오고 파일을 사용할 수 있도록 Visual Studio Code를 설정합니다.
포크 생성
첫 번째 단계는 소스 파일을 작업하고 수정할 수 있도록 mslearn-tailspin-spacegame-web-models 리포지토리를 포크하는 것입니다. Mara는 Models 디렉터리를 새 프로젝트에 넣고 웹 프로젝트에서 제거했습니다.
mslearn-tailspin-spacegame-web-models 프로젝트를 GitHub 계정으로 포크하려면 다음을 수행합니다.
- 웹 브라우저에서 GitHub로 이동하여 로그인합니다.
- mslearn-tailspin-spacegame-web-models 프로젝트로 이동합니다.
- 포크를 선택합니다.
- 리포지토리를 계정에 포크하려면 지침을 따릅니다.
포크를 로컬에 복제하세요
mslearn-tailspin-spacegame-web-models 프로젝트를 컴퓨터에 복제하려면 다음을 수행합니다.
GitHub에서 mslearn-tailspin-spacegame-web-models 프로젝트의 포크로 이동합니다.
코드를 선택합니다. 그런 다음 HTTPS 탭에서 URL 옆에 있는 단추를 선택하여 URL을 클립보드에 복사합니다.
Visual Studio Code에서 터미널 창으로 이동하여 이
git clone
명령을 실행합니다. URL을 클립보드의 내용으로 바꿉니다.git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.git
mslearn-tailspin-spacegame-web-models 디렉터리로 이동합니다. 이 위치는 리포지토리의 루트 디렉터리입니다.
cd mslearn-tailspin-spacegame-web-models
프로젝트를 열고 구성 검사
Visual Studio Code에서 터미널 창은 mslearn-tailspin-spacegame-web-models 프로젝트의 루트 디렉터리를 가리킵니다. 파일 탐색기에서 프로젝트를 열어 해당 구조를 보고 파일을 작업할 수 있습니다.
프로젝트를 여는 가장 쉬운 방법은 현재 디렉터리에서 Visual Studio Code를 다시 여는 것입니다. 이렇게 하려면 통합 터미널에서 다음 명령을 실행합니다.
code -r .
파일 탐색기에 디렉터리 및 파일 트리가 표시됩니다.
통합 터미널을 다시 엽니다. 터미널을 실행하면 웹 프로젝트의 루트에서 시작됩니다.
azure-pipelines.yml 파일을 엽니다.
패키지가 빌드되고, 버전이 설정되고, 패키지가 Azure Artifacts에 추가되는 단계가 표시됩니다.
이
DotNetCoreCLI@2
작업은 프로젝트를 빌드합니다.- task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj'
이
DotNetCoreCLI@2
작업은 1.0.0 버전으로 프로젝트를 패키지합니다.- task: DotNetCoreCLI@2 displayName: 'Pack the project - $(buildConfiguration)' inputs: command: 'pack' projects: '**/*.csproj' arguments: '--no-build --configuration $(buildConfiguration)' versioningScheme: byPrereleaseNumber majorVersion: '1' minorVersion: '0' patchVersion: '0'
패키지를 개발할 때는 일반적으로 버전 관리 체계를
byPrereleaseNumber
사용합니다. 이 방법은 버전 번호의 끝과 같은-CI-20190621-042647
고유한 시험판 접미사를 추가합니다. 이 예제에 따르면 전체 버전 번호는 .입니다1.0.0-CI-20190621-042647
.이
NuGetCommand@2
작업은 Tailspin.SpaceGame.Web.Models Azure Artifacts 피드에 패키지를 푸시합니다.- task: NuGetCommand@2 displayName: 'Publish NuGet package' inputs: command: push feedPublish: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models' allowPackageConflicts: true condition: succeeded()
feedPublish
는 게시할 피드의 이름을 지정합니다. 이름의 형식은<projectName>/<feedName>
다음과 같습니다.-
$(System.TeamProject)
는 프로젝트 이름(예: "Space Game - 웹 - 종속성")을 참조하는 미리 정의된 변수입니다. -
Tailspin.SpaceGame.Web.Models
는 이전 연습에서 제공한 피드 이름입니다.
-
권한 설정
파이프라인을 설정하고 실행하려면 빌드 서비스에 올바른 권한을 부여해야 합니다.
- Azure DevOps에서 프로젝트로 이동합니다.
- 왼쪽 메뉴에서 아티팩 트 선택
- 화면 오른쪽 위에 있는 설정 아이콘을 선택한 다음 사용 권한 탭을 선택합니다.
- 사용자/그룹 추가 단추를 선택합니다.
- 사용자/그룹 필드에 Space Game - 웹 - 종속성 빌드 서비스를 입력하고, 기여자 역할을 선택하고, 저장을 선택합니다.
Azure Pipelines에서 파이프라인 만들기
이전 모듈에서 Azure Pipelines를 설정하는 방법을 알아보았습니다. 복습이 필요하다면 Azure Pipelines를 사용하여 빌드 파이프라인을 만드는 것을 참조하세요.
패키지를 빌드하고 해당 패키지를 Azure Artifacts에 업로드하는 두 번째 파이프라인을 설정하는 방법은 다음과 같습니다.
Azure DevOps에서 Space Game - 웹 - 종속성 프로젝트로 이동합니다.
왼쪽 메뉴에서 파이프라인을 선택합니다.
새 파이프라인을 선택합니다.
연결 탭에서 GitHub를 선택합니다.
선택 탭에서 mslearn-tailspin-spacegame-web-models를 선택합니다.
메시지가 표시되면 GitHub 자격 증명을 입력합니다. 표시되는 페이지에서 아래쪽으로 스크롤하고 승인 및 설치를 선택합니다.
검토 탭에서 새 파이프라인의 azure-pipelines.yml 파일이 표시됩니다.
실행을 선택합니다.
파이프라인 실행을 확인합니다.
아티팩트 탭으로 이동합니다.
위쪽의 드롭다운에서 Tailspin.SpaceGame.Web.Models를 선택합니다.
Azure Artifacts에 결과 패키지 Tailspin.SpaceGame.Web.Models가 표시됩니다.
패키지를 선택하여 세부 정보 페이지로 이동합니다. 그런 다음 버전 번호를 나중에 액세스할 수 있는 위치에 복사합니다.
다음 단원에서 이 버전 번호를 사용합니다.