Add platform validation for multi-arch manifests in Post_Build stage#2126
Open
dagood wants to merge 10 commits into
Open
Add platform validation for multi-arch manifests in Post_Build stage#2126dagood wants to merge 10 commits into
dagood wants to merge 10 commits into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds an optional platform-completeness validation step for multi-arch manifest list generation in ImageBuilder and wires it through AzDO Post_Build templates (plus docs) so builds can fail early if a manifest list tag would omit manifest-defined platforms.
Changes:
- Add manifest list platform validation APIs to
ManifestListHelperand expose a--validate-manifest-list-platformsCLI switch forcreateManifestList. - Update
CreateManifestListCommandto run validation (when enabled) before pushing/creating manifest lists. - Plumb a
validateManifestListPlatformsboolean parameter through AzDO templates and document the behavior in DEV-GUIDE/CHANGELOG.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/ImageBuilder/ManifestListHelper.cs | Adds platform validation logic and supporting types/helpers for manifest list generation. |
| src/ImageBuilder/Commands/CreateManifestListOptions.cs | Introduces --validate-manifest-list-platforms CLI option and binds it to options. |
| src/ImageBuilder/Commands/CreateManifestListCommand.cs | Executes platform validation (when enabled) before creating/pushing manifest lists. |
| src/ImageBuilder.Tests/ManifestListHelperTests.cs | Adds unit tests covering validation issues and successful validation. |
| src/ImageBuilder.Tests/CreateManifestListCommandTests.cs | Adds end-to-end command test verifying validation prevents partial manifest list creation. |
| eng/docker-tools/templates/stages/dotnet/build-test-publish-repo.yml | Adds validateManifestListPlatforms parameter pass-through for the repo pipeline template. |
| eng/docker-tools/templates/stages/dotnet/build-and-test.yml | Adds validateManifestListPlatforms parameter pass-through for dotnet build-and-test stage template. |
| eng/docker-tools/templates/stages/build-and-test.yml | Wires validateManifestListPlatforms into Post_Build stage invocation. |
| eng/docker-tools/templates/jobs/post-build.yml | Conditionally appends --validate-manifest-list-platforms to createManifestList args. |
| eng/docker-tools/DEV-GUIDE.md | Documents Post_Build creating manifests and the new validation toggle guidance. |
| eng/docker-tools/CHANGELOG.md | Adds changelog entry describing the new validation parameter and recommended usage. |
Member
Author
|
This is an implementation by Copilot for: The doc and test changes look reasonable to me, but I would need more time to understand everything happening in |
mthalman
reviewed
May 27, 2026
…ifest-all-platforms
lbussell
approved these changes
Jun 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change
createManifestListto validate the list of platforms in the manifest list against the expectations inmanifest.json. More information in doc changes.