Created
April 29, 2016 05:50
-
-
Save dvdstelt/2528b08ce2476e73e009433f419d632e to your computer and use it in GitHub Desktop.
LINQPad script for retrieving package versions used in deployments
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var endpoint = new OctopusServerEndpoint("http://54.169.230.0:8085/", "API-xxxxxxxxxxxxxxxxxxxxxxxxxx"); | |
var client = new OctopusClient(endpoint); | |
var repo = new OctopusRepository(client); | |
var projects = repo.Projects.GetAll().Select (p => repo.Projects.Get(p.Id)); | |
var allDeployments = projects.SelectMany(p=>repo.Deployments.FindMany(d=>d.ProjectId.Equals(p.Id)).Take(5)).GroupBy (p => p.ProjectId).SelectMany (p => p); | |
var nugetPackageIds = new List<string>(new string[]{"Webshop.Frontend", "Webshop.Backend", "Webshop.BusinessRules", "Webshop.Messages"}); | |
foreach(var deployment in allDeployments) | |
{ | |
var release = repo.Releases.Get(deployment.ReleaseId); | |
var project = repo.Projects.Get(release.ProjectId); | |
var environment = repo.Environments.Get(deployment.EnvironmentId); | |
var deploymentProcess = repo.DeploymentProcesses.Get(release.ProjectDeploymentProcessSnapshotId); | |
var packageSteps = deploymentProcess.Steps.Where(s => s.Actions.Any (a => a.Properties.ContainsKey("Octopus.Action.Package.NuGetPackageId"))); | |
if(packageSteps.Any()) | |
{ | |
foreach(var selectedPackage in release.SelectedPackages) | |
{ | |
var step = packageSteps.FirstOrDefault (s => s.Name.Equals(selectedPackage.StepName, StringComparison.OrdinalIgnoreCase)); | |
if(step != null) | |
{ | |
var packageActions = step.Actions.Where(a => a.Properties.ContainsKey("Octopus.Action.Package.NuGetPackageId")); | |
foreach(var action in packageActions) | |
{ | |
Console.WriteLine("Project '{0}', Environment '{1}', Release '{2}', Package '{3}', Version '{4}'", | |
project.Name, | |
environment.Name, | |
release.Version, | |
action.Properties["Octopus.Action.Package.NuGetPackageId"].Value, | |
selectedPackage.Version); | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment