Lab Management 워크플로 사용자 지정
업데이트: 2010년 10월
Visual Studio Lab Management의 종단 간 워크플로는 응용 프로그램 빌드, 가상 환경에 새 빌드 배포 및 새 빌드에서 테스트 실행 작업을 자동화할 수 있도록 도와줍니다. LabDefaultTemplate은 즉시 사용할 수 있는 기본 워크플로 템플릿으로 제공됩니다. LabDefaultTemplate을 사용하는 방법에 대한 자세한 내용은 방법: 가상 환경에서 응용 프로그램 배포를 참조하십시오. 그러나 요구 사항이 다르기 때문에 각 BDT(빌드-배포-테스트) 프로세스는 약간 다를 수 있습니다. 예를 들어 한 워크플로에서는 일반 빌드 위치에서 테스트 이진을 복사해야 하는 반면 다른 워크플로에서는 임시 위치에서 테스트 이진을 복사해야 합니다. 또는 한 워크플로에서는 각 테스터가 배포 시 사용할 라이브러리에 환경을 저장해야 하는 반면 다른 워크플로에서는 환경을 저장하지 않습니다. 기본 워크플로 템플릿은 Windows Workflow 4.0을 기반으로 하기 때문에 완벽하게 확장 및 사용자 지정이 가능하며 특정 요구 사항에 맞게 LabDefaultTemplate을 사용자 지정할 수 있습니다.
이 항목에서는 워크플로 템플릿을 사용자 지정하는 일반 단계를 설명한 다음 사용자 지정이 매우 유용한 5가지 시나리오 예를 제공합니다.
빌드 위치가 아닌 테스트 이진 위치를 지정합니다.
설치 후에 다시 시작해야 하는 응용 프로그램 배포를 지원합니다.
소스 제어 파일을 읽습니다.
빌드 에이전트 계정을 사용하여 빌드 저장 위치에 액세스합니다.
랩 서비스 계정을 사용하여 다른 위치에 액세스합니다.
워크플로 사용자 지정의 기본 개념
워크플로 사용자 지정에는 다음 세 가지 주요 개념이 사용됩니다.
템플릿 템플릿은 워크플로의 일부인 활동 또는 단계의 시퀀스를 정의합니다. 템플릿은 Windows Workflow Foundation 4.0을 기반으로 하며 소스 제어에 .xaml 파일로 저장됩니다. 템플릿을 워크플로 편집기에 로드하려면 .xaml 파일을 두 번 클릭합니다. 편집기에서 워크플로를 결정하는 다양한 활동과 시퀀스를 볼 수 있습니다. 그런 후에 다른 범위, 조건부 논리, 루프 등과 함께 변수를 사용하여 다른 프로그래밍 언어와 동일한 방식으로 템플릿을 프로그래밍할 수 있습니다. Windows Workflow Foundation을 사용하면 요구에 맞게 랩 기본 템플릿을 사용자 지정할 수 있습니다.
활동 활동은 워크플로의 구성 요소이고 랩 기본 템플릿은 많은 활동을 사용합니다. 도구 상자의 Team Foundation Lab Management 활동 제목 아래에서 추가 활동을 찾을 수 있습니다. 워크플로에 활동을 사용하려면 도구 상자에서 Visual Studio 워크플로 편집기에 있는 템플릿의 해당 위치로 활동을 끌어다 놓습니다. 활동의 속성을 보면 입력 및 출력 매개 변수를 결정할 수 있습니다. 각 Lab Management 활동에 대한 자세한 내용은 Team Foundation LabManagement 작업을 참조하십시오. 제품에 포함된 활동이 요구 사항을 충족하지 않는 경우 새 활동을 추가할 수 있습니다.
인수 필요한 사용자 입력을 위한 새 입력 인수를 만들고 이러한 값을 활동에 전달할 수 있습니다. 워크플로 편집기 창의 맨 아래에서 인수 탭을 클릭하여 기존 인수를 표시합니다. 새 인수를 만드는 경우 빌드 정의에서 프로세스 탭의 빌드 프로세스 매개 변수 탭에 표시됩니다.
사용자 지정이 필요한 다음 두 가지 예를 검토할 때 이러한 개념을 고려하십시오. 첫 번째 예는 템플릿에 있는 기존 활동의 입력 인수를 변경하는 방법을 설명하고, 두 번째 예는 도구 상자에서 새 활동을 추가하는 방법을 설명합니다. 이러한 예는 요구 사항에 따라 LabDefaultTemplate을 사용자 지정하기 위한 충분한 컨텍스트를 제공해야 합니다.
사용자 지정을 시작하기 전에
LabDefaultTemplate 워크플로 템플릿의 사용자 지정을 시작하기 전에 완료해야 하는 몇 가지 일반적인 단계가 있습니다. 다음 다이어그램은 이러한 단계를 보여 줍니다.
사용자 지정을 준비하려면
팀 탐색기에서 팀 프로젝트에 대한 소스 제어 노드를 두 번 클릭합니다.
소스 제어 탐색기에서 소스 제어 트리를 확장하고 $/<Project_Name>/BuildProcessTemplates 폴더를 찾습니다.
이 폴더를 로컬 폴더(예: C:\Sources)에 매핑합니다.
LabDefaultTemplate.xaml 파일을 마우스 오른쪽 단추로 클릭하고 최신 버전 가져오기를 클릭합니다.
LabDefaultTemplate.xaml 파일의 복사본을 만들고 새 이름(예: LabDefaultTemplate_customize.xaml)을 지정합니다.
이 새로운 파일을 소스 제어에 추가합니다.
이 새로운 파일을 두 번 클릭합니다. 파일이 Visual Studio 워크플로 편집기에서 열립니다.
기본 워크플로 템플릿에서 만든 복사본을 사용자 지정합니다.
빌드 저장 위치가 아닌 테스트 이진 위치를 지정하는 사용자 지정
기본 워크플로 템플릿인 LabDefaultTemplate은 테스트 이진 위치가 빌드 저장 위치와 같다고 가정합니다. 하지만 이 경우에는 테스트 코드가 제품 코드와 함께 빌드되지 않을 수 있습니다. 이 문제가 발생하는 경우 테스트 이진이 다른 위치에서 선택되도록 템플릿을 사용자 지정하는 것이 좋습니다. 이 사용자 지정에는 다음 그림에 표시된 세 가지 단계가 포함됩니다.
워크프로 입력 인수를 정의하여 테스트 이진 경로 지정
입력 인수를 정의하려면
워크플로 편집기 창의 맨 아래에서 인수 탭을 클릭합니다.
인수 만들기를 클릭합니다. 텍스트 상자에 인수의 이름(예: TestBinariesLocation)을 입력합니다. 방향 드롭다운 목록에서 입력을 클릭합니다. 인수 형식 드롭다운 목록에서 문자열을 클릭합니다.
ExecuteRemoteTestRun 활동에 인수 값 전달
이 활동은 원격 테스트 실행을 만들고 테스트 실행이 완료될 때까지 기다린 다음 테스트 실행 통계로 빌드 정보를 업데이트합니다.
인수 값을 전달하려면
워크플로 편집기에서 테스트 실행 중 활동으로 스크롤합니다. 활동의 표시 이름은 테스트 실행 중이지만 활동 형식은 ExecuteRemoteTestRun입니다.
활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다. 속성 창이 오른쪽 아래에서 열리고 이 활동의 입력 및 출력 인수를 표시합니다. 이 활동의 입력 인수 중 하나는 TestDirectory로, 테스트 이진 위치의 경로를 설정합니다.
속성 창에서 TestDirectory를 클릭합니다. 행의 끝에서 줄임표(…)를 클릭합니다.
식 편집기에서 TestBinariesLocation을 입력하고 확인을 클릭합니다.
파일 메뉴에서 LabDefaultTemplate_customize.xaml 저장을 클릭합니다.
소스 제어 탐색기 메뉴 모음에서 체크 인 아이콘을 클릭합니다.
이제 사용자 지정된 .xaml 파일을 사용하여 새 빌드 정의를 만들 수 있습니다. 새로운 입력 인수 TestBinariesLocation이 빌드 정의에서 프로세스 탭의 기타 섹션에 표시되며 여기서 값을 할당할 수 있습니다.
배포 후에 컴퓨터를 다시 시작해야 하는 응용 프로그램 설치 관리자를 지원하기 위한 사용자 지정
기본 워크플로 템플릿인 LabDefaultTemplate은 응용 프로그램을 배포한 후 가상 환경을 다시 시작하지 않습니다. 배포된 후 다시 시작해야 하는 응용 프로그램을 지원하기 위해 템플릿을 사용자 지정할 수 있습니다. 수동으로 가상 환경에 응용 프로그램을 배포한 경우 응용 프로그램이 설치된 가상 컴퓨터만 다시 시작합니다. Visual Studio Lab Management는 환경의 개별 가상 컴퓨터에 대한 작업을 지원하지 않습니다. 따라서 한 컴퓨터를 다시 시작하려면 가상 환경의 모든 컴퓨터를 다시 시작해야 합니다.
경고
배포 스크립트에서 가상 컴퓨터를 다시 시작하지 않도록 합니다. 이 문제가 발생하는 경우 배포 스크립트를 실행 중인 빌드 에이전트와 빌드 컨트롤러의 연결이 끊어지고 워크플로가 중지될 수 있습니다.
새 빌드를 배포한 후 가상 컴퓨터를 다시 시작하려면 LabDefaultTemplate에 다음 세 가지 활동을 추가해야 합니다.
환경 중지
환경 시작
워크플로의 나머지 부분을 계속하기 전에 가상 컴퓨터가 시작될 때까지 기다립니다.
환경 중지
도구 상자에서 워크플로 템플릿으로 StopLabEnvironment 활동을 끌어다 놓고 활동 변수를 초기화하면 기본 워크플로 템플릿에 환경 중지 활동을 추가할 수 있습니다.
환경을 중지하려면
워크플로 편집기에서 표시 이름이 응용 프로그램 배포 성공인 활동으로 스크롤합니다.
보기 메뉴에서 도구 상자를 클릭합니다. 도구 상자가 왼쪽에서 열리고 Team Foundation 빌드 활동 목록을 표시합니다. Team Foundation Lab Management 활동 목록이 표시될 때까지 활동 목록을 스크롤합니다.
도구 상자에서 StopLabEnvironment 활동을 클릭합니다. 활동을 워크플로 편집기로 끌어온 다음 응용 프로그램 배포 성공 활동 앞에 놓습니다.
활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다. 속성 창에 이 활동의 입력 및 출력 인수가 표시됩니다. 워크플로에 환경 URI를 참조하는 LabEnvironmentUri라는 변수가 이미 있습니다.
변수 탭을 클릭합니다. 변수 목록이 표시됩니다.
LabEnvironmentUri 행의 기본값 열 아래에서 VB 식 입력을 두 번 클릭합니다. 텍스트 상자에 LabEnvironmentUri를 입력합니다. 편집기에 매개 변수의 기존 사용이 모두 표시되며, 값을 입력하는 대신 목록에서 선택할 수 있습니다.
환경 시작
도구 상자에서 워크플로 템플릿으로 StartLabEnvironment 활동을 끌어다 놓고 활동 변수를 초기화하면 기본 워크플로 템플릿에 환경 시작 활동을 추가할 수 있습니다.
환경을 시작하려면
도구 상자에서 StartLabEnvironment 활동을 클릭합니다. 활동을 워크플로 편집기로 끌어온 다음 응용 프로그램 배포 성공 활동 앞, StopLabEnvironment 활동 뒤에 놓습니다.
활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다. 속성 창에 이 활동의 입력 및 출력 인수가 표시됩니다. 다시 워크플로에 환경 URI를 참조하는 LabEnvironmentUri라는 변수가 이미 있습니다.
변수 탭을 클릭합니다. 변수 목록이 표시됩니다.
LabEnvironmentUri 행의 기본값 열 아래에서 VB 식 입력을 두 번 클릭합니다. 텍스트 상자에 LabEnvironmentUri를 입력합니다. 편집기에 매개 변수의 기존 사용이 모두 표시되며, 값을 입력하는 대신 목록에서 선택할 수 있습니다.
워크플로의 나머지 부분을 계속하기 전에 컴퓨터가 다시 시작될 때까지 기다립니다.
도구 상자에서 워크플로 템플릿으로 지연 활동을 끌어다 놓고 활동 변수를 초기화하면 가상 컴퓨터가 시작되기 전의 대기 시간을 추가할 수 있습니다. 이 활동은 도구 상자의 기본 설정 탭에 있습니다.
가상 컴퓨터가 시작될 때까지 기다리려면
도구 상자에서 기본 설정 탭을 클릭합니다.
지연 활동을 클릭합니다. 활동을 워크플로 편집기로 끌어온 다음 응용 프로그램 배포 성공 활동 앞, StartLabEnvironment 활동 뒤에 놓습니다.
활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다. 속성 창에 이 활동의 입력 및 출력 인수가 표시됩니다. 워크플로에 대기 시간을 참조하는 Duration이라는 변수가 이미 있습니다.
속성 창에서 Duration을 클릭하고 줄임표(…)를 클릭합니다.
식 편집기에서 대기 시간(예: 10분)을 TimeSpan.FromMinutes(10) 형식으로 입력합니다.
이 템플릿을 수정한 후 소스 제어에 체크 인하고 템플릿을 사용하여 설치 후에 다시 시작해야 하는 응용 프로그램을 배포하는 새 빌드 정의를 만듭니다.
소스 제어 파일을 읽는 사용자 지정
사용자 지정 활동을 만든 다음 워크플로 템플릿에 이 활동을 사용하고 랩 서비스 계정을 통해 통신하는 빌드 에이전트가 해당 활동에 액세스할 수 있는지 확인합니다. 이러한 활동을 소스 제어 시스템에 사용자 지정 어셈블리로 체크인해야 하므로 랩 서비스 계정에 사용자 지정 어셈블리가 체크 인된 경로를 읽을 수 있는 권한이 있는지 확인해야 합니다. 랩 서비스 계정에 대한 자세한 내용은 방법: 테스트 및 워크플로 통합을 위한 서비스 계정 구성을 참조하십시오. tf permissions 명령을 사용하여 랩 서비스 계정에 권한을 부여할 수 있습니다. 예를 들어 $/MyProject/CustomAssemblies 경로의 랩 서비스 계정 mydomain\labAccount에 읽기 권한을 부여하려면 C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tf permission /user:mydomain\labAccount /collection:http://aseemb-tfs10:8080/tfs/Collection0 /allow:read $/MyProject/CustomAssemblies와 비슷한 명령을 실행해야 합니다.
빌드 에이전트 계정을 사용하여 빌드 저장 위치에 액세스하기 위한 사용자 지정
랩 워크플로를 실행하는 빌드 에이전트는 랩 서비스 계정을 사용하여 빌드 저장 위치에 액세스합니다. 빌드 에이전트가 빌드 에이전트 계정을 대신 사용하게 하려는 경우 워크플로 템플릿을 사용자 지정할 수 있습니다. 템플릿에서 배포 스크립트를 실행하는 RunDeploymentScript 활동을 찾습니다. 이 활동은 랩 서비스 계정을 사용하여 액세스해야 하는 위치를 정의하는 SharedLocationForNetUse 속성을 노출합니다. <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="[BuildLocation]" />랩 서비스 계정 대신 빌드 에이전트 계정으로 저장 위치에 액세스하려면 템플릿에서 속성을 삭제하거나 다음 예와 같이 이 속성의 값을 null({x:Null})로 설정합니다. mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="{x:Null}" />
랩 서비스 계정을 사용하여 다른 위치에 액세스하기 위한 사용자 지정
랩 서비스 계정으로 실행 중인 빌드 에이전트가 빌드 저장 위치가 아닌 다른 위치를 읽어야 하는 경우 SharedLocationForNetUse 속성의 값을 기본값 **[BuildLocation]**에서 원하는 위치로 변경할 수 있습니다. 예를 들어 랩 서비스 계정으로 실행 중인 빌드 에이전트가 \\contoso\scripts 디렉터리에 액세스하려면 <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="\\contoso\scripts" />가 있어야 합니다.
참고 항목
작업
참조
.NET 4의 Windows WF(Workflow Foundation)에 대한 개발자 소개
개념
기타 리소스
Team Foundation LabManagement 작업
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2010년 10월 |
워크플로를 사용자 지정할 때의 여러 단계를 요약하는 그림 두 개가 추가되었습니다. |
향상된 기능 관련 정보 |