/// <summary> /// Given a BuildVersion defining our a build, return the labels applied to that build /// </summary> /// <param name="BuildVersion">Build version to return labels for.</param> /// <param name="McpConfigName">Which BuildInfo backend to get labels from for this promotion attempt.</param> abstract public List <string> GetBuildLabels(BuildPatchToolStagingInfo StagingInfo, string McpConfigName);
/// <summary> /// Given a MCPStagingInfo defining our build info, posts the build to the MCP BuildInfo Service. /// </summary> /// <param name="stagingInfo">Staging Info describing the BuildInfo to post.</param> abstract public void PostBuildInfo(BuildPatchToolStagingInfo stagingInfo);
/// <summary> /// Given a MCPStagingInfo defining our build info and a MCP config name, posts the build to the requested MCP BuildInfo Service. /// </summary> /// <param name="StagingInfo">Staging Info describing the BuildInfo to post.</param> /// <param name="McpConfigName">Name of which MCP config to post to.</param> abstract public void PostBuildInfo(BuildPatchToolStagingInfo StagingInfo, string McpConfigName);
/// <summary> /// Copies chunks from a staged location to the production CDN. /// </summary> /// <param name="command">Build command (used to allow the -CDNDrive cmdline override).</param> /// <param name="stagingInfo">Staging info used to determine where the chunks are to copy.</param> public abstract void CopyChunksToProductionCDN(BuildPatchToolStagingInfo stagingInfo);
/// <summary> /// Verifies whether a manifest for a given build is in cloud storage. /// </summary> /// <param name="Container">The name of the folder or container in which to store files.</param> /// <param name="stagingInfo">Staging info representing the build to check.</param> /// <returns>True if the manifest exists in cloud storage, false otherwise.</returns> abstract public bool IsManifestOnCloudStorage(string Container, BuildPatchToolStagingInfo StagingInfo);
/// <summary> /// Informs Patcher Service of a new build availability after async labeling is complete /// (this usually means the build was copied to a public file server before the label could be applied). /// </summary> /// <param name="Command">Parent command</param> /// <param name="AppName">Application name that the patcher service will use.</param> /// <param name="BuildVersion">BuildVersion string that the patcher service will use.</param> /// <param name="ManifestRelativePath">Relative path to the Manifest file relative to the global build root (which is like P:\Builds) </param> /// <param name="LabelName">Name of the label that we will be setting.</param> abstract public void BuildPromotionCompleted(BuildPatchToolStagingInfo stagingInfo, string AppName, string BuildVersion, string ManifestRelativePath, string PlatformName, string LabelName);
/// <summary> /// Copies chunks from a staged location to the production CDN. /// </summary> /// <param name="command">Build command (used to allow the -CDNDrive cmdline override).</param> /// <param name="stagingInfo">Staging info used to determine where the chunks are to copy.</param> abstract public void CopyChunksToProductionCDN(BuildPatchToolStagingInfo stagingInfo);
/// <summary> /// Given a MCPStagingInfo defining our build info and a MCP config name, posts the build to the requested MCP BuildInfo Service. /// </summary> /// <param name="StagingInfo">Staging Info describing the BuildInfo to post.</param> /// <param name="McpConfigName">Name of which MCP config to post to.</param> public abstract void PostBuildInfo(BuildPatchToolStagingInfo StagingInfo, string McpConfigName);
public abstract string GetClientToken(BuildPatchToolStagingInfo StagingInfo);
/// <summary> /// Apply the requested label to the requested build in the BuildInfo backend for the requested MCP environment /// </summary> /// <param name="StagingInfo">Staging info for the build to label.</param> /// <param name="DestinationLabelWithPlatform">Label, including platform, to apply</param> /// <param name="McpConfigName">Which BuildInfo backend to label the build in.</param> public abstract void LabelBuild(BuildPatchToolStagingInfo StagingInfo, string DestinationLabelWithPlatform, string McpConfigName);
/// <summary> /// Given a MCPStagingInfo defining our build info, posts the build to the MCP BuildInfo Service. /// </summary> /// <param name="stagingInfo">Staging Info describing the BuildInfo to post.</param> public abstract void PostBuildInfo(BuildPatchToolStagingInfo stagingInfo);
/// <summary> /// Checks for a stagingInfo's manifest on the production CDN. /// </summary> /// <param name="stagingInfo">Staging info used to determine where the chunks are to copy.</param> public abstract bool IsManifestOnProductionCDN(BuildPatchToolStagingInfo stagingInfo);
/// <summary> /// Get a BuildVersion string with the Platform concatenated on. /// </summary> /// <param name="DestinationLabel">Base of label</param> /// <param name="Platform">Platform to add to base label.</param> public abstract string GetBuildVersionWithPlatform(BuildPatchToolStagingInfo StagingInfo);
/// <summary> /// Given a BuildVersion defining our a build, return the labels applied to that build /// </summary> /// <param name="BuildVersion">Build version to return labels for.</param> /// <param name="McpConfigName">Which BuildInfo backend to get labels from for this promotion attempt.</param> public abstract List<string> GetBuildLabels(BuildPatchToolStagingInfo StagingInfo, string McpConfigName);
/// <summary> /// Get a BuildVersion string with the Platform concatenated on. /// </summary> /// <param name="DestinationLabel">Base of label</param> /// <param name="Platform">Platform to add to base label.</param> abstract public string GetBuildVersionWithPlatform(BuildPatchToolStagingInfo StagingInfo);
/// <summary> /// Determines whether a given build is registered in build info /// </summary> /// <param name="StagingInfo">The staging info representing the build to check.</param> /// <param name="McpConfigName">Name of which MCP config to check against.</param> /// <returns>true if the build is registered, false otherwise</returns> abstract public bool BuildExists(BuildPatchToolStagingInfo StagingInfo, string McpConfigName);
/// <summary> /// Apply the requested label to the requested build in the BuildInfo backend for the requested MCP environment /// </summary> /// <param name="StagingInfo">Staging info for the build to label.</param> /// <param name="DestinationLabelWithPlatform">Label, including platform, to apply</param> /// <param name="McpConfigName">Which BuildInfo backend to label the build in.</param> abstract public void LabelBuild(BuildPatchToolStagingInfo StagingInfo, string DestinationLabelWithPlatform, string McpConfigName);
/// <summary> /// Given a staging info defining our build, return the manifest url for that registered build /// </summary> /// <param name="StagingInfo">Staging Info describing the BuildInfo to query.</param> /// <param name="McpConfigName">Name of which MCP config to query.</param> /// <returns></returns> abstract public string GetBuildManifestUrl(BuildPatchToolStagingInfo StagingInfo, string McpConfigName);
/// <summary> /// Checks for a stagingInfo's manifest on the production CDN. /// </summary> /// <param name="stagingInfo">Staging info used to determine where the chunks are to copy.</param> abstract public bool IsManifestOnProductionCDN(BuildPatchToolStagingInfo stagingInfo);
/// <summary> /// Copies chunks from a staged location to cloud storage. /// </summary> /// <param name="Container">The name of the folder or container in which to store files.</param> /// <param name="stagingInfo">Staging info used to determine where the chunks are to copy.</param> abstract public void CopyChunksToCloudStorage(string Container, BuildPatchToolStagingInfo StagingInfo);
public abstract string GetClientToken(BuildPatchToolStagingInfo StagingInfo);
/// <summary> /// Informs Patcher Service of a new build availability after async labeling is complete /// (this usually means the build was copied to a public file server before the label could be applied). /// </summary> /// <param name="Command">Parent command</param> /// <param name="AppName">Application name that the patcher service will use.</param> /// <param name="BuildVersion">BuildVersion string that the patcher service will use.</param> /// <param name="ManifestRelativePath">Relative path to the Manifest file relative to the global build root (which is like P:\Builds) </param> /// <param name="LabelName">Name of the label that we will be setting.</param> public abstract void BuildPromotionCompleted(BuildPatchToolStagingInfo stagingInfo, string AppName, string BuildVersion, string ManifestRelativePath, string PlatformName, string LabelName);