다음을 통해 공유


LabDefaultTemplate 워크플로 작업

이 항목에서는 Windows 워크플로 활동에서 LabDefaultTemplate.11.xaml 파일을 설명합니다.LabDefaultTemplate Lab Management 빌드, 배포 및 테스트 환경에서 응용 프로그램을 테스트 있습니다 워크플로우 프로세스 정의 합니다.Windows 워크플로에 대 한 자세한 내용을 보려면이 페이지를 참조 하십시오. A 개발자의 소개를 Windows 워크플로 파운데이션 (WF).net 4에서 MSDN 웹 사이트에서.

요구 사항

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional

워크플로 초기화

프로세스 루트 작업

루트는 Labdefaulttemplate의 TfsBuild.Process 활동입니다.이 ActivityBuilder 초기화 워크플로의 글로벌 인수 빌드 정의에서 빌드 정의 창 고 랩 워크플로 매개 변수 마법사에 제공 된 입력 합니다.

Ff652752.collapse_all(ko-kr,VS.110).gif인수

LabWorkflowParameters 인수 랩 워크플로 매개 변수 마법사에서 제공 되는 데이터를 포함 합니다.이 인수는 LabWorkflowDetails 다음과 같은 개체를 포함 하는 개체:

BuildDetails

A Microsoft.TeamFoundation.Lab.Workflow.Activities.BuildDetails 빌드에 대 한 빌드를 저장 하는 개체에 자세히 설명 하 고, 배포 및 워크플로 테스트 합니다.

DeploymentDetails

A Microsoft.TeamFoundation.Lab.Workflow.Activities.DeploymentDetails 빌드 워크플로를 배포 하는 데 필요한 정보를 저장 하는 개체입니다.

EnvironmentDetails

A Microsoft.TeamFoundation.Lab.Workflow.Activities.LabEnvironmentDetails 개체 사용에 대 한 빌드, 배포 및 테스트 시나리오에 환경 식별 정보를 저장 합니다.

TestParameters

A Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails 만드는 자동화 된 테스트를 실행 하는 데 필요한 테스트 매개 변수 정보를 저장 하는 개체입니다.

또한 다음 인수 전역 범위에서 선언 합니다.

인수

형식

Metadata

ProcessParameterMetadataCollection

Verbosity

A Verbosity 로그에 기록 되는 정보의 양을 지정 하는 값을 열거 합니다.

BuildNumberFormat

A String 빌드 번호의 서식을 지정 합니다.

SupportedReasons

A BuildReason빌드에 대 한 원인을 지정 하는 값을 열거 합니다.

응용 프로그램 배포 워크플로 시퀀스

응용 프로그램 배포 워크플로

응용 프로그램 배포 워크플로 시퀀스 제어 전체 빌드, 배포 및 테스트 시나리오.

응용 프로그램 배포 워크플로 다음 변수를 선언 합니다.

  • BuildDetail: A IBuildDetail object.

  • LabEnvironmnetUri: A String 빌드 배포 환경의 uri를 지정 합니다.

  • BuildLocation: A String 의 빌드 위치를 지정 합니다.

  • SnapshotId: A String 는 가상 컴퓨터 스냅숏 식별자를 지정 합니다.

  • QueueBuildId: A Int32 는 큐에 빌드 식별자를 지정 합니다.

빌드를 실행합니다.

빌드 번호를 업데이트 합니다.

빌드 번호를 업데이트 확장 하 고 빌드 번호 반환 된 BuildNumberFormat 인수.업데이트 빌드 번호 되는 Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber 활동 합니다.

빌드 정보를 봅니다.

자세히 빌드 실행 하거나 워크플로 마법사에서 지정 된 빌드에 액세스 하는 데 필요한 데이터를 반환 합니다.IBuildDetail 개체에 저장 되는 BuildDetail 변수입니다.

자세히 빌드 되는 Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail 활동.서식 파일에 다음 속성 설정:

  • 결과 IBuildDetail 개체로 반환 된 BuildDetail 변수.

If Build is Needed 작업

빌드가 필요한 경우 새 빌드 팀 시스템 빌드 프로세스에 대 한 필요 여부를 결정 합니다.조건이 충족 되 면 워크플로가 실행 되는 하지 빌드 시퀀스.

빌드 실행 작업

하지 빌드 의 빌드, 빌드를 완료 하려면 기다린 설정한 다음 시퀀스를 시작 빌드 위치.

빌드 워크플로 시작 합니다.

빌드 워크플로 시작 지정한 빌드 컨트롤러에서 새 빌드를 큐에 대기 시키고 id에 대기 중인된 빌드를 반환의 QueueBuildId 변수입니다.빌드 워크플로 시작 되는 RunWorkflow 활동 합니다.서식 파일에 다음 속성 설정:

  • BuildDefinition 설정는 BuildDetails.BuildDefinitionName 속성에는 LabWorkflowParameters 인수.

  • ProjectName 인수를 설정는 TeamProject 속성의는 BuildDetail변수입니다.

빌드를 완료 합니다.

대기에 대 한 빌드를 완료 빌드 완료 되거나 시간 제한 간격 경과 된 때까지 실행을 일시 중단 합니다.활동 시간 제한에 도달 하면 예외를 throw 합니다.에 빌드 상태를 반환 하는 활동은 BuildStatus 변수와 새 빌드에 대 한 데이터는 ChildBuildDetail 변수.대기에 대 한 빌드를 완료 되는 WaitForWorkflow 활동 합니다.템플릿을 다음 속성 값을 설정합니다.

  • AllowPartiallySucceededBuild 설정 true로

  • BuildDetails 새 빌드 데이터를 반환 된 ChildBuildDetail 변수입니다.

  • MaxWaitTime 무제한으로 설정 됩니다.

  • QueueBuildId 빌드 큐 id를 반환 합니다. QueueBuildId 변수입니다.

빌드 위치 설정

빌드 위치 설정 할당 위치에서 빌드는 ChildBuildDetail 변수를 BuildDetails.BuildUri 속성의의 LabWorkflowParameters 인수.

응용 프로그램 배포

업데이트 배포 요약

배포 요약 업데이트 빌드 페이지에 배포 대상 환경의 이름을 씁니다.배포 요약 업데이트 되는 WriteDeploymentInformation 활동 합니다.

GetBuildLocationAndBuildNumber

GetBuildLocationAndBuildNumber 저장 위치는 빌드를 반환 합니다. BuildLocation 변수입니다.GetBuildLocationAndBuildNumber 되는 GetBuildLocationAndBuildNumber 활동 합니다.서식 파일에 다음 속성 설정:

  • BuildDetails 설정는 BuildDetails 에 포함 된 개체를 LabWorkflowParameters 인수

  • 빌드 번호 빌드 번호를 반환 된 BuildNumber 변수입니다.

  • 결과 반환 하려면 빌드 위치는 BuildLocation 변수

  • SelectedBuild 반환 된 IBuildDetail 개체의 SelectedBuildDetail 빌드 서버 빌드 데이터가 있는 변수.

필요한 빌드 위치 계산 작업

경우는 필요한 계산 빌드 위치 조건 충족 빌드 경로 계산 플랫폼과 빌드 구성 하위 폴더에 저장 위치에 추가 합니다.

사용자가 저장된 환경을 선택한 경우 작업

저장된 환경 사용자를 선택한 경우 환경 배포 되었는지 확인 하 고 나타내는 오류 환경이 라이브러리에 저장 되어 있는 경우 예외를 throw 합니다.

실험실 환경 가져오기

환경에서 가져올 환경으로의 uri를 반환의 LabEnvironmentUri 변수.환경에서 가져올 되는 GetLabEnvironmentUri 활동.서식 파일은 다음 속성을 설정합니다.

  • LabEnvironmentName 의 값으로 설정 되는 EnvironmentDetails.LabEnvironmentName 속성의의 LabWorkflowParameters 인수.

  • ProjectName 의 값으로 설정 되는 TeamProject 속성의의 BuildDetail 변수.

  • 결과 uri의 랩 환경에 반환 된 LabEnvironmentUri 변수.

  • TeamProjectLabLocationName 의 값으로 설정 되는 EnvironmentDetails.HostGroupName 속성의의 LabWorkflowParameters 인수.

  • TfsServerUrl 설정 null입니다.

If Restore Snapshot 작업

경우 스냅샷 복원 사용자 환경 정리를 스냅숏으로 복원 되도록 요청 여부를 결정 합니다.조건이 충족 될 경우는 스냅샷 복원 시퀀스를 실행 합니다. 그렇지 않으면 클린 스냅샷을 지정 빌드 요약에 경고 메시지를 씁니다.

스냅숏 복원 작업

스냅샷 복원 시퀀스를 스냅샷 자세한 정보 얻기 id는 스냅샷의 계산 및 스냅샷 랩 환경을 복원 복원을 수행.

스냅샷 정보를 봅니다.

스냅샷 정보 되는 GetLabEnvironmentSnapshotId 활동 합니다.서식 파일에 다음 속성 설정:

  • LabEnvironmentUri 의 값으로 설정 되는 LabEnvironmentUri 변수입니다.

  • 결과 id에 스냅샷을 반환의 SnapshotId 변수.

  • SnapshotName 설정는 EnvironmentDetails.SnapshotName 속성에는 LabWorkflowParameters 인수.

환경 스냅숏 복원

랩 환경을 스냅샷으로 복원 되는 RestoreLabEnvironment 활동 합니다.서식 파일에 다음 속성 설정:

  • LabEnvironmentUri 의 값으로 설정 되는 LabEnvironmentUri변수입니다.

  • SnapshotId 의 값으로 설정 되는 SnapshotId변수입니다.

If Deployment needed 작업

배포에 필요한 경우 사용자가 배포를 요청 했는지 여부를 결정 합니다.

배포 실행 작업

조건이 충족 될 경우는 배포 하지 시퀀스를 실행 합니다.

대기에 대 한 워크플로 기능을 사용할 수

에 대 한 워크플로 기능 대기할 수 대비 환경의 워크플로 기능이 사용 가능 또는 시간 제한 간격에 도달할 때까지 실행을 일시 중단 합니다.시간 제한 간격을 초과 하는 경우 예외가 throw 됩니다.에 대 한 워크플로 기능 대기할 수 대비 되는 WaitForWorkflowCapabilityServices 활동.서식 파일에 다음 속성 설정:

  • LabEnvironmentUri 의 값으로 설정 되는 LabEnvironmentUri 변수입니다.

  • MaxWaitTime 20 분으로 설정 됩니다

  • RepairCapabilityBeforeWaitBegins 를 false로 설정 합니다.

배포 스크립트 실행 작업

배포 스크립트 실행 실행의 랩 시스템에서 스크립트 실행 시퀀스에 포함 된 각 배포 스크립트에는 DeploymentDetails.Scripts 속성 목록을 LabWorkflowParameters 인수.

랩 시스템에서 스크립트 실행 작업

랩 시스템에서 스크립트 실행 시퀀스 환경에서 가상 컴퓨터에 지정 된 스크립트를 실행 합니다.시험 시스템에서 스크립트 실행 다음 변수를 선언 합니다.

태그 에이전트 및 배포 스크립트를 초기화 합니다.

초기화 스크립트 태그 에이전트 및 배포 매크로 스크립트 태그를 확장 하 고 결과를 반환 된 ScriptDetails 개체.초기화 스크립트를 배포 하 고 에이전트 태그 되는 InitializeAgentSpecAndEnvironmentVariables 활동.템플릿을 다음 값을 설정합니다.

  • BuildLocation 의 값으로 설정 되는 BuildLocation 변수입니다.

  • DeploymentScriptDetails 는 이터레이션되며의 값으로 설정 된 DeploymentDetails.Scripts 문자열입니다.

  • LabEnvironmentUri 의 값으로 설정 된 LabEnvironmentUri 변수.

  • 결과 확장 된 스크립트에 반환 하는 scriptDetails 변수입니다.

랩 에이전트 범위

랩 에이전트 범위 랩 에이전트를 설치 하 고 실행 대상 가상 컴퓨터 및 다음 호출 인지 여부를 확인 배포 스크립트 실행 스크립트를 실행 합니다.모든 스크립트는 컴퓨터에서 실패 하면 예외가 throw 됩니다.랩 에이전트 범위 되는 Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope활동 합니다.서식 파일에 다음 속성 설정:

  • MaxExecutionTime 무제한으로 설정 됩니다.

  • MaxWaitTime 5 분으로 설정 됩니다.

  • ReservationSpec Microsoft.Te:amFoundation.Build.Client.BuildAgentSpec 개체에 설정 된는 AgentSpec 속성에는 scriptDetails 변수.

배포 스크립트를 실행합니다.

배포 스크립트를 실행 합니다. 대상 가상 컴퓨터에 배포 스크립트를 실행 합니다.배포 스크립트를 실행 합니다. 되는 RunDeploymentScript 활동 합니다.템플릿을 다음 값을 설정합니다.

  • ScriptDetails 의 값으로 설정 되는 scriptDetails 변수입니다.

  • ThrowOnError 설정 하려면 true입니다.

  • SharedLocationForNetUse 의 값으로 설정 되는 BuildLocation 변수입니다.

응용 프로그램 배포 성공

응용 프로그램 배포 되었습니다 빌드 요약 정보를 기록 합니다.응용 프로그램 배포 되었습니다 되는 WriteDeploymentInformation 활동 합니다.

배포 후 스냅숏

배포 스냅샷 게시 환경의 스냅숏을 배포 후 저장 되는 사용자를 요청 했는지 여부를 결정 합니다.이 조건이 충족 될 경우는 게시물 배포 스냅 사진 만들기 시퀀스를 실행 합니다.그렇지 않으면 게시물 배포 스냅샷을 지정 경고 메시지를 로그에 기록 합니다.

배포 후 스냅숏 만들기 작업

게시물 배포 스냅샷을 시퀀스

게시물 배포 스냅샷을 다음 변수를 선언 합니다.

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName: String 템플릿을 기본값으로 값을 설정는 BuildNumber 속성에는 BuildDetails 변수.

스냅숏 이름 선택 작업

스냅샷 이름 확인 스냅숏 이름이 지정 되어 있는지 여부를 결정 합니다.조건이 충족 될 경우 지정 된 이름이 사용 됩니다. 그렇지 않으면 기본값이 사용 됩니다.

배포 포스트 스냅샷 작성

배포 포스트 스냅숏 기록 되는 SnapshotLabEnvironment 의 스냅숏을 만드는 작업.서식 파일에 다음 속성 설정:

  • LabEnvironmentUri 의 값으로 설정 되는 LabEnvironmentUri 변수입니다.

  • SnapshotChainId id에 스냅샷을 반환의 PostDeploymentSnapshotChainId 변수.

  • SnapshotName 의 값으로 설정 되는 PostDeploymentSnapshotName 변수입니다.

스냅샷을 수행 했습니다.

스냅샷을 수행 성공 빌드 요약에 스냅숏 이름을 씁니다.스냅샷을 수행 성공 되는 WriteDeploymentInformation 활동 합니다.

스냅샷으로 연결 링크 추가

스냅샷을 추가 연결 링크 빌드 요약으로 url의 스냅샷 기록 합니다.스냅샷을 추가 연결 링크 되는 WriteDeploymentInformation 활동 합니다.

테스트를 실행합니다.

Run Tests On Environment 작업

테스트 환경에서 실행 자동된 테스트 요청 된 여부를 결정 합니다.조건이 충족 될 경우는 테스트 실행 시퀀스를 실행 합니다.

테스트 실행 작업

테스트 실행

테스트를 실행 합니다. 다음 변수를 선언 합니다.

  • TestCapabilityInfo: Microsoft.teamfoundation.lab.client.testingcapabilityinformation입니다.

  • TestResults: Microsoft.teamfoundation.lab.workflow.activities.testrunstatistics입니다.템플릿을 새 TestRunStatistics 개체를 기본 값을 설정합니다.

대기에 대 한 테스트 할 기능

대기에 대 한 테스트 할 기능 환경의 테스트 기능 사용 가능 또는 시간 제한 간격에 도달할 때까지 실행을 일시 중단 합니다.시간 제한 간격을 초과 하는 경우 예외가 throw 됩니다.

대기에 대 한 테스트 할 기능 되는 WaitForTestCapabilityServices 활동 합니다.서식 파일에 다음 속성 설정:

  • LabEnvironmentUri 의 값으로 설정 되는 LabEnvironmentUri 변수입니다.

  • MaxWaitTime 20 분으로 설정 됩니다.

  • RepairCapabilityBeforeWaitBegins 를 false로 설정 합니다.

테스트를 실행합니다.

테스트를 실행 합니다. 테스트를 실행 하 고 테스트 결과 반환 합니다.테스트를 실행 합니다. 되는 ExecuteRemoteTestRun 활동 합니다.템플릿을 다음 값을 설정합니다.

  • MaxWaitTime 무제한으로 설정 됩니다.

  • 빌드 번호 의 값으로 설정 되는 BuildNumber 변수입니다.

  • TestDirectory 의 값으로 설정 되는 BuildLocation 변수입니다.

  • LabEnvironmentUri 의 값으로 설정 되는 LabEnvironmentUri 변수입니다.

  • TestParameters 설정 되어 TestParameters 에 포함 된 개체는 LabWorkflowParameters 개체입니다.

  • 결과 테스트 결과를 포함 하는 Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails 개체를 반환 된 TestResults 변수입니다.

  • 제목 테스트 실행의 값으로 설정의 BuildNumber 속성에는 BuildDetail 변수.

If All Tests Have Not Passed 작업

테스트를 모두 전달 해야 하는 경우 모든 테스트가 실패 했 고 실행 여부를 결정 합니다. 빌드 상태 설정 조건이 충족 될 경우.

빌드 상태 설정

집합 빌드 상태 워크플로 빌드 또는 배포 응용 프로그램의 포함 여부를 지정 합니다.이 조건이 충족 될 경우 부분적으로 성공 워크플로 상태를 설정는 BuildStatus.PartiallySucceeded 값입니다.그렇지 않으면 실패 설정 된 BuildStatus 변수를 Failed.

참고 항목

개념

Lab Management 워크플로 작업