Skip to content

Add a common prefix to all pipeline stages that aren't injected by 1ES pipeline templates #1696

@lbussell

Description

@lbussell

When reviewing a pipeline's output, it's difficult to determine which stages we control and which we don't. Lots of additional stages are injected by required pipeline templates.

extends:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
parameters:
pool: ${{ parameters.pool }}
sdl:
binskim:
enabled: true
componentgovernance:
ignoreDirectories: $(Build.SourcesDirectory)/versions
whatIf: ${{ parameters.cgDryRun }}
showAlertLink: true
policheck:
enabled: true
sourceRepositoriesToScan:
exclude:
- repository: InternalVersionsRepo
- repository: PublicVersionsRepo
sourceAnalysisPool: ${{ parameters.sourceAnalysisPool }}
tsa:
enabled: true
stages: ${{ parameters.stages }}

We should add some logic to inject a common prefix to each task/step's displayName. Something simple that stands out is an emoji like 🟪. (purple because that's .NET's color).

One problem that I see with this approach is that the postPublishNotification ImageBuilder command relies on the displayName of tasks to check if they were successful.

--task "Copy Images (Authenticated)"
--task "Publish Manifest (Authenticated)"
--task "Wait for Image Ingestion (Authenticated)"
--task "Publish Readmes"
--task "Wait for MCR Doc Ingestion (Authenticated)"
--task "Publish Image Info"
--task "Ingest Kusto Image Info (Authenticated)"
--task "Generate EOL Annotation Data (Authenticated)"
--task "Annotate EOL Images (Authenticated)"
--task "Wait for Annotation Ingestion (Authenticated)"

That behavior should be based on the name of the steps, not the displayName. That way we can do whatever we want with displayNames without worrying about breaking publish notifications.

Metadata

Metadata

Assignees

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions