연습 - 패키지의 파이프라인 만들기
여기서는 이제 Tailspin.SpaceGame.Web 프로젝트와 분리된 Tailspin.SpaceGame.Web.Models 프로젝트를 위한 팀의 새 코드를 얻을 수 있습니다. 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 - web - Dependencies’)을 참조하는 미리 정의된 변수입니다.Tailspin.SpaceGame.Web.Models
는 이전 연습에서 제공한 피드 이름입니다.
권한 설정
파이프라인을 설정하고 실행하려면 빌드 서비스에 올바른 권한을 제공해야 합니다.
- Azure DevOps에서 프로젝트로 이동합니다.
- 왼쪽 메뉴에서 아티팩트를 선택합니다.
- 화면 오른쪽 위에 있는 설정 아이콘을 선택한 다음 사용 권한 탭을 선택합니다.
- 사용자/그룹 추가 단추를 선택합니다.
- 사용자/그룹 필드에 Space Game - web - Dependencies Build Service를 입력하고 기여자 역할을 선택하고 저장을 선택합니다.
Azure Pipelines에서 파이프라인 만들기
이전 모듈에서 Azure Pipelines를 설정하는 방법을 알아보았습니다. 기억에 도움이 되는 정보가 필요하면 Azure Pipelines로 빌드 파이프라인 만들기 위에 마우스 커서를 둡니다.
두 번째 파이프라인을 설정하여 패키지를 빌드하고 Azure Artifacts에 해당 패키지를 업로드하는 방법은 다음과 같습니다.
Azure DevOps에서 Space Game - web - Dependencies 프로젝트로 이동합니다.
왼쪽 메뉴에서 파이프라인을 선택합니다.
새 파이프라인을 선택합니다.
연결 탭에서 GitHub를 선택합니다.
선택 탭에서 mslearn-tailspin-spacegame-web-models를 선택합니다.
프롬프트가 표시되면 GitHub 자격 증명을 입력합니다. 표시되는 페이지에서 아래쪽으로 스크롤하고 승인 및 설치를 선택합니다.
검토 탭에 새 파이프라인의 azure-pipelines.yml 파일이 표시됩니다.
실행을 선택합니다.
파이프라인 실행을 확인합니다.
아티팩트 탭으로 이동합니다.
상단 드롭다운에서 Tailspin.SpaceGame.Web.Models를 선택합니다.
Azure Artifacts에 결과 패키지인 Tailspin.SpaceGame.Web.Models가 표시됩니다.
패키지를 선택하여 세부 정보 페이지로 이동합니다. 그런 다음 나중에 쉽게 액세스할 수 있는 위치에 버전 번호를 복사합니다.
다음 단원에서 이 버전 번호를 사용합니다.