public static AzureTargetSite GetAzureTargetSite(string siteAndMaybeSlotName, string slotName) { AzureTargetSite targetSite = new AzureTargetSite { RawSite = siteAndMaybeSlotName }; if (siteAndMaybeSlotName.Contains("(")) { // legacy site and slot "site(slot)" var parenthesesIndex = siteAndMaybeSlotName.IndexOf("(", StringComparison.Ordinal); targetSite.Site = siteAndMaybeSlotName.Substring(0, parenthesesIndex).Trim(); targetSite.Slot = siteAndMaybeSlotName.Substring(parenthesesIndex + 1).Replace(")", string.Empty).Trim(); return(targetSite); } if (siteAndMaybeSlotName.Contains("/")) { // "site/slot" var slashIndex = siteAndMaybeSlotName.IndexOf("/", StringComparison.Ordinal); targetSite.Site = siteAndMaybeSlotName.Substring(0, slashIndex).Trim(); targetSite.Slot = siteAndMaybeSlotName.Substring(slashIndex + 1).Trim(); return(targetSite); } targetSite.Site = siteAndMaybeSlotName; targetSite.Slot = slotName; return(targetSite); }
private static string BuildPath(AzureTargetSite site, VariableDictionary variables) { var relativePath = (variables.Get(SpecialVariables.Action.Azure.PhysicalPath) ?? "").TrimStart('\\'); return(relativePath != "" ? site.Site + "\\" + relativePath : site.Site); }
string BuildPath(AzureTargetSite site, IVariables variables) { var relativePath = variables.Get(SpecialVariables.Action.Azure.PhysicalPath, String.Empty).TrimStart('\\'); return(relativePath != String.Empty ? site.Site + "\\" + relativePath : site.Site); }
private static void DeployToAzure(RunningDeployment deployment, AzureTargetSite targetSite, CalamariVariableDictionary variables, WebDeployPublishSettings publishSettings) { var retry = AzureRetryTracker.GetDefaultRetryTracker(); while (retry.Try()) { try { Log.Verbose($"Using site '{targetSite.Site}'"); Log.Verbose($"Using slot '{targetSite.Slot}'"); var changeSummary = DeploymentManager .CreateObject("contentPath", deployment.CurrentDirectory) .SyncTo( "contentPath", BuildPath(targetSite, variables), DeploymentOptions(publishSettings), DeploymentSyncOptions(variables) ); Log.Info( "Successfully deployed to Azure. {0} objects added. {1} objects updated. {2} objects deleted.", changeSummary.ObjectsAdded, changeSummary.ObjectsUpdated, changeSummary.ObjectsDeleted); break; } catch (DeploymentDetailedException ex) { if (retry.CanRetry()) { if (retry.ShouldLogWarning()) { Log.VerboseFormat("Retry #{0} on Azure deploy. Exception: {1}", retry.CurrentTry, ex.Message); } Thread.Sleep(retry.Sleep()); } else { throw; } } } }
private static DeploymentBaseOptions DeploymentOptions(AzureTargetSite targetSite, SitePublishProfile publishProfile) { var options = new DeploymentBaseOptions { AuthenticationType = "Basic", RetryAttempts = 3, RetryInterval = 1000, TraceLevel = TraceLevel.Verbose, UserName = publishProfile.UserName, Password = publishProfile.Password, UserAgent = "OctopusDeploy/1.0", ComputerName = new Uri(publishProfile.Uri, $"/msdeploy.axd?site={targetSite.Site}").ToString() }; options.Trace += (sender, eventArgs) => LogDeploymentEvent(eventArgs); return(options); }