public async Task <VstsRelease> CreateRelease(int releaseDefinitionId, Dictionary <string, string> overrideParameters) { ReleaseHttpClient releaseClient = _vssConnection.GetClient <ReleaseHttpClient>(); Dictionary <string, ConfigurationVariableValue> overRideReleaseLevelVariables = new Dictionary <string, ConfigurationVariableValue>(); foreach (var overrideParameter in overrideParameters) { ConfigurationVariableValue overrideVaraible = new ConfigurationVariableValue(); overrideVaraible.Value = overrideParameter.Value; overrideVaraible.IsSecret = false; overRideReleaseLevelVariables.Add(overrideParameter.Key, overrideVaraible); } return(await CreateRelease(releaseClient, releaseDefinitionId, _configuration.Value.ProjectName, overRideReleaseLevelVariables)); }
public WebApiRelease CreateRelease() { string projectName = ClientSampleHelpers.FindAnyProject(this.Context).Name; // Get a release client instance VssConnection connection = Context.Connection; ReleaseHttpClient releaseClient = connection.GetClient <ReleaseHttpClient>(); // Override release level varaible. You can override environment level varaible also. Dictionary <string, ConfigurationVariableValue> overrideReleaseLevelVariables = new Dictionary <string, ConfigurationVariableValue>(); ConfigurationVariableValue nonSecretReleaseLevelVaraible = new ConfigurationVariableValue(); nonSecretReleaseLevelVaraible.Value = "NonSecretValueChanged"; nonSecretReleaseLevelVaraible.IsSecret = false; overrideReleaseLevelVariables.Add(NonSecretReleaseLevelVaraible, nonSecretReleaseLevelVaraible); // Create release WebApiRelease release = CreateRelease(releaseClient, newlyCreatedReleaseDefinitionId, projectName, overrideReleaseLevelVariables); Context.Log("{0} {1}", release.Id.ToString().PadLeft(6), release.Name); return(release); }
public ReleaseDefinition UpdateReleaseDefinition() { string projectName = ClientSampleHelpers.FindAnyProject(this.Context).Name; // Get a release client instance VssConnection connection = Context.Connection; ReleaseHttpClient releaseClient = connection.GetClient <ReleaseHttpClient>(); ReleaseDefinition releaseDefinition = releaseClient.GetReleaseDefinitionAsync(project: projectName, definitionId: newlyCreatedReleaseDefinitionId).Result; // add a non secret variable to definition ConfigurationVariableValue variable = new ConfigurationVariableValue(); variable.Value = "NonSecretValue"; variable.IsSecret = false; releaseDefinition.Variables.Add("NonSecretVariable", variable); // update release definition ReleaseDefinition updatedReleaseDefinition = releaseClient.UpdateReleaseDefinitionAsync(project: projectName, releaseDefinition: releaseDefinition).Result; Console.WriteLine("{0} {1} {2}", updatedReleaseDefinition.Id.ToString().PadLeft(6), updatedReleaseDefinition.Revision, updatedReleaseDefinition.ModifiedOn); return(releaseDefinition); }
public ReleaseDefinition CreateReleaseDefinition() { string projectName = ClientSampleHelpers.FindAnyProject(this.Context).Name; string currentUserId = ClientSampleHelpers.GetCurrentUserId(this.Context).ToString(); // If you want to override varaibles at release create time you should set 'AllowOverride'. ConfigurationVariableValue nonSceretVariable = new ConfigurationVariableValue(); nonSceretVariable.Value = "NonSecretValue"; nonSceretVariable.IsSecret = false; nonSceretVariable.AllowOverride = true; ConfigurationVariableValue sceretVariable = new ConfigurationVariableValue(); sceretVariable.Value = "SecretValue"; sceretVariable.IsSecret = true; ConfigurationVariableValue nonOverrideVariable = new ConfigurationVariableValue(); nonOverrideVariable.Value = "NonOverridevariable"; nonOverrideVariable.IsSecret = false; nonOverrideVariable.AllowOverride = false; Dictionary <string, ConfigurationVariableValue> releaseLevelVariables = new Dictionary <string, ConfigurationVariableValue>(); releaseLevelVariables.Add(NonSecretReleaseLevelVaraible, nonSceretVariable); releaseLevelVariables.Add("SecretReleaseLevelVaraible", sceretVariable); releaseLevelVariables.Add("NonOverridevariable", nonOverrideVariable); ReleaseDefinition definition = new ReleaseDefinition() { Name = releaseDefinitionName, Revision = 1, Variables = releaseLevelVariables, // You can add varaibles at environment level also. Environments = new List <ReleaseDefinitionEnvironment>() { new ReleaseDefinitionEnvironment() { Name = "PROD", DeployPhases = new List <DeployPhase>() { new AgentBasedDeployPhase() { Name = "Run on agent", Rank = 1, DeploymentInput = new AgentDeploymentInput() { QueueId = 1 } } }, PreDeployApprovals = new ReleaseDefinitionApprovals() { Approvals = new List <ReleaseDefinitionApprovalStep>() { new ReleaseDefinitionApprovalStep() { IsAutomated = false, Rank = 1, Approver = new IdentityRef() { Id = currentUserId } }, } }, PostDeployApprovals = new ReleaseDefinitionApprovals() { Approvals = new List <ReleaseDefinitionApprovalStep>() { new ReleaseDefinitionApprovalStep() { IsAutomated = true, Rank = 1 } } }, RetentionPolicy = new EnvironmentRetentionPolicy() { DaysToKeep = 30, ReleasesToKeep = 3, RetainBuild = true } } } }; // Get a release client instance VssConnection connection = Context.Connection; ReleaseHttpClient releaseClient = connection.GetClient <ReleaseHttpClient>(); // create a release definition ReleaseDefinition releaseDefinition = releaseClient.CreateReleaseDefinitionAsync(project: projectName, releaseDefinition: definition).Result; newlyCreatedReleaseDefinitionId = releaseDefinition.Id; Context.Log("{0} {1}", releaseDefinition.Id.ToString().PadLeft(6), releaseDefinition.Name); return(releaseDefinition); }