Exemplo n.º 1
0
        public async Task<IBuildDefinition> CreateBuildDefinition(LabWorkflowManager.TFS.Common.WorkflowConfig.LabWorkflowDefinitionDetails labworkflowDefinitionDetails)
        {
            return await Task.Run(() =>
            {
                if (this.BuildServer != null)
                {
                    var buildDefinition =
                        this.BuildServer.CreateBuildDefinition(this.connectivity.TeamProjects.First().Name);

                    ConfigMainBuildDefinitionSettings(labworkflowDefinitionDetails.LabBuildDefinitionDetails,
                        buildDefinition);

                    var processParameters =
                        WorkflowHelpers.DeserializeProcessParameters(buildDefinition.ProcessParameters);

                    var labWorkflowDetails = new LabWorkflowDetails();
                    ConfigLabBuildSettings(labworkflowDefinitionDetails.SourceBuildDetails, labWorkflowDetails);
                    ConfigLabEnvironmentSettings(labworkflowDefinitionDetails.LabEnvironmentDetails, labWorkflowDetails);
                    ConfigLabDeploymentSettings(labworkflowDefinitionDetails.DeploymentDetails, labWorkflowDetails);
                    ConfigLabTestSettings(labworkflowDefinitionDetails.TestDetails, labWorkflowDetails);

                    processParameters.Add("LabWorkflowParameters", labWorkflowDetails);
                    buildDefinition.ProcessParameters = WorkflowHelpers.SerializeProcessParameters(processParameters);
                    buildDefinition.Save();
                    return buildDefinition;
                }
                throw new Exception("No connection to TFS!");
            });
        }
Exemplo n.º 2
0
 private LabWorkflowDetails ConfigLabBuildSettings(LabWorkflowManager.TFS.Common.WorkflowConfig.SourceBuildDetails sourceBuildDetails, LabWorkflowDetails labWorkflowDetails)
 {
     if (sourceBuildDetails.BuildDefinitionUri != null)
     {
         var compileBuildDefinition = this.BuildServer.GetBuildDefinition(new Uri(sourceBuildDetails.BuildDefinitionUri));
         labWorkflowDetails.BuildDetails.BuildDefinitionUri = compileBuildDefinition.Uri;
         labWorkflowDetails.BuildDetails.BuildDefinitionName = compileBuildDefinition.Name;
         labWorkflowDetails.BuildDetails.QueueNewBuild = sourceBuildDetails.QueueNewBuild;
         if (!string.IsNullOrWhiteSpace(sourceBuildDetails.BuildUri))
         {
             labWorkflowDetails.BuildDetails.BuildUri = new Uri(sourceBuildDetails.BuildUri);
         }
         labWorkflowDetails.BuildDetails.IsTeamSystemBuild = true;
     }
     else
     {
         labWorkflowDetails.BuildDetails.CustomBuildPath = sourceBuildDetails.CustomBuildPath;
     }
     return labWorkflowDetails;
 }
Exemplo n.º 3
0
 private static void ConfigLabDeploymentSettings(LabWorkflowManager.TFS.Common.WorkflowConfig.DeploymentDetails deploymentDetails, LabWorkflowDetails labWorkflowDetails)
 {
     labWorkflowDetails.DeploymentDetails.DeploymentNeeded = true;
     labWorkflowDetails.DeploymentDetails.UseRoleForDeployment = true;
     labWorkflowDetails.DeploymentDetails.TakePostDeploymentSnapshot = deploymentDetails.TakePostDeploymentSnapshot;
     labWorkflowDetails.DeploymentDetails.PostDeploymentSnapshotName = deploymentDetails.SnapshotName;
     labWorkflowDetails.DeploymentDetails.UseRoleForDeployment = true;
     labWorkflowDetails.DeploymentDetails.Scripts = new Microsoft.TeamFoundation.Build.Workflow.Activities.StringList();
     labWorkflowDetails.DeploymentDetails.Scripts.AddRange(deploymentDetails.ScriptStrings);
 }
Exemplo n.º 4
0
        private void ConfigLabEnvironmentSettings(LabWorkflowManager.TFS.Common.WorkflowConfig.LabEnvironmentDetails labEnvironmentDetails, LabWorkflowDetails labWorkflowDetails)
        {
            var labService = this.connectivity.Tpc.GetService<LabService>();
            var environment = labService.GetLabEnvironment(new Uri(labEnvironmentDetails.LabEnvironmentUri));
            labWorkflowDetails.EnvironmentDetails.LabEnvironmentUri = environment.Uri;
            labWorkflowDetails.EnvironmentDetails.LabEnvironmentName = environment.Name;
            if (!string.IsNullOrWhiteSpace(labEnvironmentDetails.SnapshotName))
            {
                labWorkflowDetails.EnvironmentDetails.SnapshotName = labEnvironmentDetails.SnapshotName;
                labWorkflowDetails.EnvironmentDetails.RevertToSnapshot = true;
            }

            labWorkflowDetails.EnvironmentDetails.RevertToSnapshot = labEnvironmentDetails.RevertToSnapshot;
        }
Exemplo n.º 5
0
 private void ConfigLabTestSettings(LabWorkflowManager.TFS.Common.WorkflowConfig.TestDetails testDetails, LabWorkflowDetails labWorkflowDetails)
 {
     labWorkflowDetails.TestParameters.ProjectName = this.connectivity.TeamProjects.First().Name;
     labWorkflowDetails.TestParameters.RunTest = true;
     labWorkflowDetails.TestParameters.TestPlanId = testDetails.TestPlanId;
     labWorkflowDetails.TestParameters.TestSuiteIdList = testDetails.TestSuiteIdList.ToList();
     labWorkflowDetails.TestParameters.TestSettingsId = testDetails.TestSettingsId;
     labWorkflowDetails.TestParameters.TestConfigurationId = testDetails.TestConfigurationId;
 }