LabDefaultTemplate 워크플로 작업
이 항목은 LabDefaultTemplate.11.xaml 파일의 Windows 워크플로 작업에 대해 설명합니다. LabDefaultTemplate은 랩 환경에서 응용 프로그램을 빌드, 배포 및 테스트할 수 있는 Lab Management 워크플로 프로세스를 정의합니다. Windows 워크플로에 대한 자세한 내용은 MSDN 웹 사이트에서 .NET 4의 Windows WF(Workflow Foundation)에 대한 개발자 소개(영문) 페이지를 참조하세요.
요구 사항
- Visual Studio Enterprise, Visual Studio Test Professional
워크플로 초기화
LabDefaultTemplate의 루트는 TfsBuild.Process 활동입니다. 이 ActivityBuilder는 빌드 정의 창 및 랩 워크플로 매개 변수 마법사에 제공된 입력에서 워크플로 빌드 정의에 대한 전역 인수를 초기화합니다.
인수
LabWorkflowParameters 인수에는 랩 워크플로 매개 변수 마법사에 제공된 데이터가 포함됩니다. 이 인수는 다음 개체가 포함된 LabWorkflowDetails 개체입니다.
BuildDetails |
빌드, 배포 및 테스트 워크플로에 대한 빌드 세부 정보를 저장하는 BuildDetails 개체 |
DeploymentDetails |
워크플로에서 빌드 배포에 필요한 정보를 저장하는 LabEnvironmentDetails 개체 |
EnvironmentDetails |
빌드, 배포 및 테스트 시나리오에 사용할 환경을 식별하는 정보를 저장하는LabEnvironmentDetails 개체 |
TestParameters |
자동화된 테스트 실행을 만드는 데 필요한 테스트 매개 변수 세부 정보를 저장하는 RunTestDetails 개체 |
다음 인수도 전역 범위에서 선언합니다.
인수 |
형식 |
---|---|
Metadata |
ProcessParameterMetadataCollection |
Verbosity |
로그에 기록되는 정보의 양을 지정하는 T:Microsoft.TeamFoundation.Build.Workflow.Verbosity 열거형 값 |
BuildNumberFormat |
빌드 번호의 형식을 지정하는 String |
SupportedReasons |
빌드 이유를 지정하는 BuildReason 열거형 값 |
응용 프로그램 배포 워크플로 시퀀스
응용 프로그램 배포 워크플로 시퀀스는 전체 빌드, 배포 및 테스트 시나리오를 제어합니다. 응용 프로그램 배포 워크플로는 다음 변수를 선언합니다.
|
빌드 실행
업데이트 빌드 번호 |
빌드 번호 업데이트는 BuildNumberFormat 인수의 빌드 번호를 확장 및 반환합니다. 빌드 번호 업데이트는 a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_UpdateBuildNumber 활동입니다. |
빌드 정보 가져오기 |
빌드 정보 가져오기는 워크플로 마법사에 지정된 빌드를 실행 또는 액세스하는 데 필요한 데이터를 반환합니다. IBuildDetail 개체는 BuildDetail 변수에 저장됩니다. 빌드 정보 가져오기는 a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_GetBuildDetail 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
빌드가 필요한 경우는 팀 시스템 빌드 프로세스에 새 빌드가 필요한지 여부를 결정합니다. 조건이 충족될 경우 워크플로에서 빌드 수행 시퀀스를 실행합니다. |
|
빌드 수행 시퀀스는 빌드를 시작하고 빌드가 완료될 때까지 기다린 다음 빌드 위치를 설정합니다. |
|
빌드 워크플로 시작 |
빌드 워크플로 시작은 새 빌드를 지정된 빌드 컨트롤러에 대기시키고 큐에 대기 중인 빌드의 id를 QueueBuildId 변수에 반환합니다. 빌드 워크플로 시작은 RunWorkflow 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
빌드 완료 대기 중 |
빌드 완료 대기 중은 빌드가 완료되거나 시간 초과 간격이 경과될 때까지 일시 중지됩니다. 제한 시간에 도달하면 활동에서 예외를 throw합니다. 활동이 BuildStatus 변수에 빌드 상태를 반환하고 ChildBuildDetail 변수에 새 빌드에 대한 데이터를 반환합니다. 빌드 완료 대기 중은 WaitForWorkflow 활동입니다. 템플릿은 다음 속성 값을 설정합니다.
|
빌드 위치 설정 |
빌드 위치 설정은 ChildBuildDetail 변수의 빌드 위치를 BuildDetails.BuildUri 인수의 LabWorkflowParameters 속성으로 할당합니다. |
응용 프로그램 배포
배포 요약 업데이트 |
배포 요약 업데이트는 빌드 페이지에 배포 대상 환경의 이름을 씁니다. 배포 요약 업데이트는 WriteDeploymentInformation 활동입니다. |
GetBuildLocationAndBuildNumber |
GetBuildLocationAndBuildNumber는 빌드 저장 위치를 BuildLocation 변수로 반환합니다. GetBuildLocationAndBuildNumber는 GetBuildLocationAndBuildNumber 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
필요한 빌드 위치 계산 조건이 충족되면 빌드 경로 계산이 플랫폼과 빌드 구성 하위 폴더를 저장 위치에 추가합니다. |
|
사용자가 저장된 환경을 선택한 경우에서 해당 환경이 배포되었는지 여부를 확인하고 해당 환경이 라이브러리에 저장되어 있을 경우 오류 표시에서 예외를 throw합니다. |
|
랩 환경 가져오기 |
랩 환경 가져오기는 LabEnvironmentUri 변수에 환경의 URI를 반환합니다. 랩 환경 가져오기는 GetLabEnvironmentUri 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
If Restore Snapshot은 사용자가 환경을 클린 스냅숏으로 복원하도록 요청했는지 여부를 확인합니다. 조건이 충족될 경우 스냅숏 복원 시퀀스가 실행되고, 그렇지 않으면 클린 스냅숏이 지정되지 않음에서 빌드 요약에 경고 메시지를 씁니다. |
|
스냅숏 복원 시퀀스에서 스냅숏 정보 가져오기는 스냅숏 ID를 계산하고 랩 환경을 스냅숏으로 복원은 복원을 수행합니다. |
|
스냅숏 정보 가져오기 |
스냅샷 정보 가져오기는 GetLabEnvironmentSnapshotId 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
랩 환경을 스냅숏으로 복원 |
랩 환경을 스냅숏으로 복원은 RestoreLabEnvironment 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
배포가 필요한 경우는 사용자가 배포를 요청했는지 여부를 결정합니다. |
|
조건이 충족되면 배포 수행 시퀀스가 실행됩니다. |
|
준비될 때까지 워크플로 기능 대기 |
워크플로 기능 준비 대기는 환경의 워크플로 기능이 준비되었거나 시간 제한 간격이 도달할 때까지 실행을 일시 중단합니다. 시간 제한 간격을 초과하면 예외가 throw됩니다. 워크플로 기능 준비 대기는 WaitForWorkflowCapabilityServices 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
배포 실행 스크립트는 DeploymentDetails.Scripts 인수의 LabWorkflowParameters 속성 목록에 포함된 각 배포 스크립트에서 랩 시스템에서 스크립트 실행 시퀀스를 실행합니다. |
|
랩 시스템에서 스크립트 실행은 환경의 가상 컴퓨터에 지정된 스크립트를 실행하는 시퀀스입니다. 랩 시스템에서 스크립트 실행은 다음 변수를 선언합니다.
|
|
에이전트 태그 및 배포 스크립트 초기화 |
에이전트 태그 및 배포 스크립트 초기화는 스크립트의 매크로 및 태그를 확장하고 ScriptDetails 개체에 결과를 반환합니다. 에이전트 태그 및 배포 스크립트 초기화는 InitializeAgentSpecAndEnvironmentVariables 활동입니다. 템플릿은 다음 값을 설정합니다.
|
랩 에이전트 범위 |
랩 에이전트 범위는 랩 에이전트가 설치되었는지 및 대상 가상 컴퓨터에서 실행 중인지 여부를 확인한 다음 배포 실행 중 스크립트를 호출하여 스크립트를 실행합니다. 컴퓨터에서 스크립트가 하나라도 실패할 경우 예외가 throw됩니다. 랩 에이전트 범위는 a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_AgentScope 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
배포 스크립트 실행 |
배포 실행 중 스크립트는 대상 가상 컴퓨터에 배포 스크립트를 실행합니다. 배포 실행 중 스크립트는 RunDeploymentScript 활동입니다. 템플릿은 다음 값을 설정합니다.
|
응용 프로그램 배포 성공 |
응용 프로그램 배포 성공은 정보를 빌드 요약에 씁니다. 응용 프로그램 배포 성공은 WriteDeploymentInformation 활동입니다. |
배포 게시 스냅숏은 사용자가 배포 후 환경의 스냅숏을 저장하도록 요청했는지 여부를 확인합니다. 이 조건이 만족되는 경우 배포 후 스냅숏 만들기 시퀀스를 실행합니다. 그렇지 않으면 배포 후 스냅숏이 지정되지 않음에서 로그에 경고 메시지를 씁니다. |
|
배포 후 스냅숏 만들기 시퀀스 배포 후 스냅숏 만들기는 다음 변수를 선언합니다. |
|
스냅숏 이름 확인은 스냅숏 이름이 지정되어 있는지 여부를 결정합니다. 조건이 충족될 경우 지정된 이름이 사용되고, 그렇지 않으면 기본값이 사용됩니다. |
|
배포 후 스냅숏을 만드는 중 |
배포 후 스냅숏 만들기는 스냅숏을 만드는 SnapshotLabEnvironment 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
스냅숏 만들기 성공 |
스냅숏 만들기 성공은 빌드 요약에 스냅샷 이름을 씁니다. 스냅숏 만들기 성공은 WriteDeploymentInformation 활동입니다. |
스냅숏에 연결 링크를 추가함 |
스냅숏에 연결 링크를 추가함은 빌드 요약에 스냅숏 URL을 씁니다. 스냅숏에 연결 링크를 추가함은 WriteDeploymentInformation 활동입니다. |
테스트 실행 중
환경에서 테스트 실행은 자동화된 테스트가 요청되었는지 여부를 결정합니다. 조건이 충족되면 테스트 실행 시퀀스가 실행됩니다. |
|
테스트 실행 테스트 실행은 다음 변수를 선언합니다.
|
|
준비될 때까지 테스트 기능 대기 |
테스트 기능 준비 대기는 환경의 테스트 기능이 준비되었거나 시간 제한 간격이 도달할 때까지 실행을 일시 중단합니다. 시간 제한 간격을 초과하면 예외가 throw됩니다. 테스트 기능 준비 대기는 WaitForTestCapabilityServices 활동입니다. 템플릿은 다음 속성을 설정합니다.
|
테스트 실행 중 |
테스트 실행 중은 테스트를 실행하고 테스트 결과를 반환합니다. 테스트 실행 중은 ExecuteRemoteTestRun 활동입니다. 템플릿은 다음 값을 설정합니다.
|
모든 테스트에 통과하지 못한 경우는 불합격한 테스트가 있는지 여부를 확인하고 조건이 충족되면 빌드 상태 설정을 실행합니다. |
|
빌드 상태 설정 |
빌드 상태 설정은 워크플로에 응용 프로그램의 빌드 또는 배포가 포함되었는지 여부를 결정합니다. 이 조건이 충족되면 부분 성공에서 워크플로 상태를 BuildStatus.PartiallySucceeded 값으로 설정합니다. 그렇지 않을 경우, 실패에서 BuildStatus 변수를 Failed로 설정합니다. |