diff --git a/tools/pipeline-witness/Azure.Sdk.Tools.PipelineWitness/GitHubActions/MissingGitHubActionsWorker.cs b/tools/pipeline-witness/Azure.Sdk.Tools.PipelineWitness/GitHubActions/MissingGitHubActionsWorker.cs index bc929d36b01..8d209cd8314 100644 --- a/tools/pipeline-witness/Azure.Sdk.Tools.PipelineWitness/GitHubActions/MissingGitHubActionsWorker.cs +++ b/tools/pipeline-witness/Azure.Sdk.Tools.PipelineWitness/GitHubActions/MissingGitHubActionsWorker.cs @@ -56,43 +56,50 @@ protected override async Task ProcessAsync(CancellationToken cancellationToken) foreach (string ownerAndRepository in repositories) { - string owner = ownerAndRepository.Split('/')[0]; - string repository = ownerAndRepository.Split('/')[1]; - - string[] knownBlobs = await this.processor.GetRunBlobNamesAsync(ownerAndRepository, runMinTime, runMaxTime, cancellationToken); - - WorkflowRunsResponse listRunsResponse = await this.client.Actions.Workflows.Runs.List(owner, repository, new WorkflowRunsRequest + try { - Created = $"{runMinTime:o}..{runMaxTime:o}", - Status = CheckRunStatusFilter.Completed, - }); + string owner = ownerAndRepository.Split('/')[0]; + string repository = ownerAndRepository.Split('/')[1]; - var skipCount = 0; - var enqueueCount = 0; + string[] knownBlobs = await this.processor.GetRunBlobNamesAsync(ownerAndRepository, runMinTime, runMaxTime, cancellationToken); - foreach (WorkflowRun run in listRunsResponse.WorkflowRuns) - { - var blobName = this.processor.GetRunBlobName(run); - - if (knownBlobs.Contains(blobName, StringComparer.InvariantCultureIgnoreCase)) + WorkflowRunsResponse listRunsResponse = await this.client.Actions.Workflows.Runs.List(owner, repository, new WorkflowRunsRequest + { + Created = $"{runMinTime:o}..{runMaxTime:o}", + Status = CheckRunStatusFilter.Completed, + }); + + var skipCount = 0; + var enqueueCount = 0; + + foreach (WorkflowRun run in listRunsResponse.WorkflowRuns) { - skipCount++; - continue; + var blobName = this.processor.GetRunBlobName(run); + + if (knownBlobs.Contains(blobName, StringComparer.InvariantCultureIgnoreCase)) + { + skipCount++; + continue; + } + + var queueMessage = new RunCompleteQueueMessage + { + Owner = owner, + Repository = repository, + RunId = run.Id + }; + + this.logger.LogInformation("Enqueuing missing run {Repository} {RunId} for processing", ownerAndRepository, run.Id); + await this.queue.EnqueueMessageAsync(queueMessage); + enqueueCount++; } - var queueMessage = new RunCompleteQueueMessage - { - Owner = owner, - Repository = repository, - RunId = run.Id - }; - - this.logger.LogInformation("Enqueuing missing run {Repository} {RunId} for processing", ownerAndRepository, run.Id); - await this.queue.EnqueueMessageAsync(queueMessage); - enqueueCount++; + this.logger.LogInformation("Enqueued {EnqueueCount} missing runs, skipped {SkipCount} existing runs in repository {Repository}", enqueueCount, skipCount, ownerAndRepository); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error processing repository {Repository}", ownerAndRepository); } - - this.logger.LogInformation("Enqueued {EnqueueCount} missing runs, skipped {SkipCount} existing runs in repository {Repository}", enqueueCount, skipCount, ownerAndRepository); } } diff --git a/tools/pipeline-witness/ci.yml b/tools/pipeline-witness/ci.yml index 8b7f2857c3d..a7013ba419f 100644 --- a/tools/pipeline-witness/ci.yml +++ b/tools/pipeline-witness/ci.yml @@ -20,6 +20,9 @@ pr: paths: include: - tools/pipeline-witness + exclude: + - tools/pipeline-witness/monitored-repos.json + - tools/pipeline-witness/docs/* extends: template: ../../eng/pipelines/templates/stages/archetype-sdk-tool-azure-webapp.yml