protected async Task BuildCreationFailedAsync(Product product, BuildResponse buildEngineBuild)
        {
            ClearRecurringJob(product.Id);
            await SaveArtifacts(product, buildEngineBuild, false);

            var buildEngineEndpoint = GetBuildEngineEndpoint(product.Project.Organization);
            var endpointUrl         = buildEngineEndpoint.IsValid() ? buildEngineEndpoint.Url : "";
            var buildEngineUrl      = endpointUrl + "/build-admin/view?id=" + product.WorkflowBuildId.ToString();
            // If there was an errror while starting the process, then the consoleText will not be produced.
            var consoleTextUrl = "";

            buildEngineBuild.Artifacts.TryGetValue("consoleText", out consoleTextUrl);
            var messageParms = new Dictionary <string, object>()
            {
                { "projectName", product.Project.Name },
                { "productName", product.ProductDefinition.Name },
                { "buildStatus", buildEngineBuild.Status },
                { "buildError", buildEngineBuild.Error },
                { "buildEngineUrl", buildEngineUrl },
                { "consoleText", consoleTextUrl },
                { "projectId", product.ProjectId },
                { "jobId", product.WorkflowJobId },
                { "buildId", product.WorkflowBuildId },
                { "projectUrl", product.Project.WorkflowAppProjectUrl }
            };
            await SendNotificationSvc.SendNotificationToOrgAdminsAndOwnerAsync(product.Project.Organization, product.Project.Owner, "buildFailedOwner", "buildFailedAdmin", messageParms, consoleTextUrl);

            await UpdateProductBuild(buildEngineBuild, product, false);
        }
Exemple #2
0
        protected async Task BuildCreationFailedAsync(Product product, BuildResponse buildEngineBuild)
        {
            ClearRecurringJob(product.Id);
            await SaveArtifacts(product, buildEngineBuild, false);

            var buildEngineUrl = product.Project.Organization.BuildEngineUrl + "/build-admin/view?id=" + product.WorkflowBuildId.ToString();
            var consoleTextUrl = buildEngineBuild.Artifacts["consoleText"];
            var messageParms   = new Dictionary <string, object>()
            {
                { "projectName", product.Project.Name },
                { "productName", product.ProductDefinition.Name },
                { "buildStatus", buildEngineBuild.Status },
                { "buildError", buildEngineBuild.Error },
                { "buildEngineUrl", buildEngineUrl },
                { "consoleText", consoleTextUrl },
                { "projectId", product.ProjectId },
                { "jobId", product.WorkflowJobId },
                { "buildId", product.WorkflowBuildId }
            };
            await SendNotificationSvc.SendNotificationToOrgAdminsAndOwnerAsync(product.Project.Organization, product.Project.Owner, "buildFailedOwner", "buildFailedAdmin", messageParms, consoleTextUrl);

            await UpdateProductBuild(buildEngineBuild, product, false);
        }