public async Task <IList <VstsReleaseStatus> > CheckReleaseStatus(int releaseDefinitionId, int releaseId)
        {
            ReleaseHttpClient releaseClient = _vssConnection.GetClient <ReleaseHttpClient>();

            List <Deployment> deployments = await releaseClient.GetDeploymentsAsync(project : _configuration.Value.ProjectName, definitionId : releaseDefinitionId, top : 25);

            var deployment = deployments.Where(r => r.Release.Id == releaseId).OrderBy(x => x.ReleaseEnvironmentReference.Id).ToList();

            List <VstsReleaseStatus> vstsReleaseStatus = deployment.Select(x => new VstsReleaseStatus {
                Name = x.ReleaseEnvironmentReference.Name, ReleaseStatus = (VstsReleaseStatus.Status)x.DeploymentStatus
            }).ToList();

            return(vstsReleaseStatus);
        }
        public IEnumerable <Deployment> ListDeploymentsForAGivenDefinitionId()
        {
            string projectName = ClientSampleHelpers.FindAnyProject(this.Context).Name;

            // Get a release client instance
            VssConnection     connection    = Context.Connection;
            ReleaseHttpClient releaseClient = connection.GetClient <ReleaseHttpClient>();

            List <Deployment> deployments = releaseClient.GetDeploymentsAsync(project: projectName, definitionId: newlyCreatedReleaseDefinitionId).Result;

            // Show the deployments
            foreach (Deployment deployment in deployments)
            {
                Context.Log("{0} {1}", deployment.Id.ToString().PadLeft(6), deployment.Release.Name);
            }

            return(deployments);
        }
示例#3
0
 static void CancelAllInProgressDeployments(ReleaseHttpClient rmClient)
 {
     try
     {
         var allInProgressEnvironments = rmClient.GetDeploymentsAsync(
             projectName,
             deploymentStatus: DeploymentStatus.InProgress).Result;
         foreach (var inProgressEnvironment in allInProgressEnvironments)
         {
             ReleaseEnvironmentUpdateMetadata envMetaData = new ReleaseEnvironmentUpdateMetadata();
             envMetaData.Status  = EnvironmentStatus.Canceled;
             envMetaData.Comment = "Good to cancel";
             var cancelledEnvironment = rmClient.UpdateReleaseEnvironmentAsync(
                 envMetaData,
                 projectName,
                 inProgressEnvironment.Release.Id,
                 inProgressEnvironment.ReleaseEnvironment.Id).Result;
         }
     }
     catch (Exception)
     {  }
 }
示例#4
0
        protected async Task ReleaseLoad()
        {
            if (projects != null)
            {
                foreach (var proj in projects)
                {
                    var rs = await relclient.GetDeploymentsAsync(proj.Name).ConfigureAwait(false);

                    foreach (var release in rs)
                    {
                        var old   = Releases.FirstOrDefault(x => x.Id == release.Id);
                        var oldbr = BuildRelease.FirstOrDefault(x => x.Id == release.Id);
                        Releases.Remove(old);
                        BuildRelease.Remove(oldbr);
                        release.ProjectReference      = new();
                        release.ProjectReference.Name = proj.Name;
                        Releases.Add(release);
                        BuildRelease br = GetRelease(proj, release);
                        BuildRelease.Add(br);
                    }
                }
            }
        }