コード例 #1
0
        /// <inheritdoc />
        public override string DetermineCommitId(
            IssuesContext context,
            DirectoryPath repositoryRootDirectory)
        {
            context.NotNull(nameof(context));

            return(context.AzurePipelines().Environment.Repository.SourceVersion);
        }
コード例 #2
0
        /// <inheritdoc />
        public override void PublishIssuesArtifacts(IssuesContext context)
        {
            context.NotNull(nameof(context));

            if (context.Parameters.BuildServer.ShouldPublishFullIssuesReport &&
                context.State.FullIssuesReport != null &&
                context.FileExists(context.State.FullIssuesReport))
            {
                context.AzurePipelines().Commands.UploadArtifact("Issues", context.State.FullIssuesReport, "Issues");
            }
        }
コード例 #3
0
        /// <inheritdoc />
        public override void ReportIssuesToBuildServer(
            IssuesContext context)
        {
            context.NotNull(nameof(context));

            foreach (var issue in context.State.Issues)
            {
                context.AzurePipelines().Commands.WriteWarning(
                    issue.MessageText,
                    new AzurePipelinesMessageData
                {
                    SourcePath = issue.AffectedFileRelativePath?.FullPath,
                    LineNumber = issue.Line
                });
            }
        }
コード例 #4
0
        /// <inheritdoc />
        public override void CreateSummaryIssuesReport(
            IssuesContext context,
            [System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "")
        {
            context.NotNull(nameof(context));

            var summaryFileName = "summary";

            if (!string.IsNullOrWhiteSpace(context.Parameters.BuildIdentifier))
            {
                summaryFileName += $"-{context.Parameters.BuildIdentifier}";
            }
            summaryFileName += ".md";
            var summaryFilePath = context.Parameters.OutputDirectory.CombineWithFilePath(summaryFileName);

            var templateName = "Cake.Frosting.Issues.Recipe.BuildServers.AzurePipelineSummary.cshtml";

            using (var stream = this.GetType().Assembly.GetManifestResourceStream(templateName))
            {
                if (stream == null)
                {
                    throw new ApplicationException($"Could not load resource {templateName}");
                }

                using (var sr = new StreamReader(stream))
                {
                    // Create summary for Azure Pipelines using custom template.
                    context.CreateIssueReport(
                        context.State.Issues,
                        context.GenericIssueReportFormatFromContent(sr.ReadToEnd()),
                        context.State.ProjectRootDirectory,
                        summaryFilePath);
                }
            }

            context.AzurePipelines().Commands.UploadTaskSummary(summaryFilePath);
        }