Align build cycle and CI/CD with canonical protocol - #4
Merged
Conversation
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.
Align
Icod.Pathwith the canonical Icod C#/.NET development lifecycle while preserving its net7.0/net8.0/net9.0/net10.0 library contract.Base:
main@40c443b762250f135e9d7e19237d5620c42bb4b1Lifecycle
build.cmd/build.sh:DebugStagingon Windows/Linux/macOSmain: validation-only six-runnerReleasedistribution-validation.yaml: selected Debug/Staging/Release diagnosticv<semver>tags whose commit is contained inmain:ReleasepublicationPackaging
Product-specific orchestration now lives under
/packaging.The exact package verifier requires the real generated
Icod.Path.nupkgand matching.snupkg, checks README/license/icon payloads, all four TFM DLL/XML assets, and all four symbol PDB assets.PR and main packaging happens once on Linux rather than being repeated on every architecture.
Publication safety
The old
push-main.yamlpublished directly from ordinary pushes tomain; it is removed.main.yamlis validation-only. Publication now occurs only fromrelease.yamlafter tag/main-containment and exactPackageVersionchecks.NuGet.org and GitHub Packages consume the same validated package and publish in parallel. GitHub Release is the final rendezvous and contains the
.nupkg,.snupkg, and checksum manifest.README
The root README now contains
PR Staging buildandMain Release validationbadges pointing at the new workflows, and documents the Debug → Staging → Release → tagged-publication cycle.Validation
PR workflow run
33592145615succeeded on headf43158245252ddd6da816825009f2cfb5a623c40:.nupkg+.snupkgproduction: successThe tag-only publication graph cannot be runtime-tested without creating a new immutable release version/tag; its first execution should occur on the next normal release.