public async Task <ResourceGroup> ActivateJenkinsResource(JenkinsTemplate template, TryWebsitesIdentity userIdentity, string anonymousUserName) { return(await ActivateResourceGroup(userIdentity, AppService.Jenkins, DeploymentType.CsmDeploy, async (resourceGroup, inProgressOperation) => { SimpleTrace.Analytics.Information(AnalyticsEvents.UserCreatedSiteWithLanguageAndTemplateName, userIdentity.Name, template, resourceGroup); SimpleTrace.TraceInformation("{0}; {1}; {2}; {3}; {4}; {5}; {6}", AnalyticsEvents.OldUserCreatedSiteWithLanguageAndTemplateName, userIdentity.Name, "Jenkins", template.Name, resourceGroup.ResourceUniqueId, AppService.Jenkins.ToString(), anonymousUserName); SimpleTrace.UserCreatedApp(userIdentity, template, resourceGroup, AppService.Jenkins); var csmTemplateString = string.Empty; using (var reader = new StreamReader(template.CsmTemplateFilePath)) { csmTemplateString = await reader.ReadToEndAsync(); } csmTemplateString = csmTemplateString.Replace("{{jenkinsPassword}}", SimpleSettings.TryDevOpsVMPassword); await inProgressOperation.CreateDeployment(JsonConvert.DeserializeObject <JToken>(csmTemplateString), block: true); // After a deployment, we have no idea what changes happened in the resource group // we should reload it. // TODO: consider reloading the resourceGroup along with the deployment itself. await resourceGroup.Load(loadJenkinsResources: true); resourceGroup.IsRbacEnabled = false; return resourceGroup; })); }
public JobTemplateEditor(JenkinsTemplate Template, Sentinel Sentinel) { InitializeComponent(); this.template = Template; this.sentinel = Sentinel; LoadTemplate(); }
public BranchSelector(JenkinsTemplate Template, Sentinel Sentinel) { InitializeComponent(); this.template = Template; this.sentinel = Sentinel; list_branches.ItemsSource = new List <string> { "master", "19.5.2rc", "19.10.0rc", "19.5.1rc", "19.5.0rc" }; list_branches.SelectedIndex = 0; }
public void StartNewJobFromTemplate(JenkinsTemplate Template, string JobName) { JenkinsJob newJob = new JenkinsJob(JobName, Template.JobUrl, false, lastIndex + 1); WorkflowJob job = GetJobReport(newJob) as WorkflowJob; int lastBuildNumberOfJob = job.lastBuild.number; string jobInputParams = GetJsonInput(Template.GetInput()); HttpWebResponse response = client.Post(Template.BuildJobUrl, jobInputParams); string location = response.Headers["Location"]; Threading.Thread adder = new Threading.Thread(() => { int numOfMaxTrial = 20; int lastNumber = lastBuildNumberOfJob; do { Threading.Thread.Sleep(2000); WorkflowJob report = GetJobReport(newJob) as WorkflowJob; if (report != null) { lastNumber = report.lastBuild.number; } numOfMaxTrial--; }while (lastBuildNumberOfJob == lastNumber && numOfMaxTrial > 0); newJob.IsTemporary = true; newJob.RemoveIfCompleted = true; newJob.NotifySettings = new NotifySettings() { NotifyWhenBuildIsComplete = true }; newJob.JobUrl = String.Format("{0}/{1}", newJob.JobUrl, lastNumber); AddNewJob(newJob); }); adder.Start(); }