Skip to content

Replace template CI/CD with branch-scoped self-publishing model - #349

Merged
ptr727 merged 1 commit into
developfrom
feature/branch-scoped-cicd
Jun 28, 2026
Merged

Replace template CI/CD with branch-scoped self-publishing model#349
ptr727 merged 1 commit into
developfrom
feature/branch-scoped-cicd

Conversation

@ptr727

@ptr727 ptr727 commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Ports the branch-scoped self-publishing CI/CD from ptr727/LanguageTags, replacing the ProjectTemplate two-phase model. main publishes stable releases and develop publishes prereleases; each branch publishes itself when a shipped input changes. Utilities has no codegen, so the generator workflows and merge-bot codegen job are omitted.

Workflows

  • Remove build-datebadge-task.yml, build-nugetlibrary-task.yml, get-version-task.yml.
  • Add validate-task.yml (unit tests + CSharpier / dotnet format style / markdownlint / cspell / actionlint).
  • Rework build-release-task.yml (NBGV, keyless OIDC NuGet/login push, flat Utilities.7z asset), publish-release.yml (push/dispatch self-publisher with a shipped-input inclusion list), test-pull-request.yml (validate + smoke-build + Check pull request workflow status job aggregator), and merge-bot-pull-request.yml (Dependabot auto-merge only).

Config and docs

  • Add WORKFLOW.md (canonical CI/CD spec, codegen sections removed) and repo-config/ (rulesets + settings as code, delete_branch_on_merge off).
  • Add cspell.json as the single spell-check source; reconcile AGENTS.md, CODESTYLE.md, .github/copilot-instructions.md, .github/dependabot.yml, .vscode/tasks.json, and Utilities.slnx.
  • Bump version floor 3.5 -> 3.6; refresh README.md and HISTORY.md.

Verified locally: actionlint, markdownlint, cspell, YAML/JSON parse, bash -n configure.sh, EOL per .editorconfig, and Husky clean-compile.

🤖 Generated with Claude Code

Port the branch-scoped self-publishing pipeline from ptr727/LanguageTags,
replacing the ProjectTemplate two-phase model. main publishes stable
releases and develop publishes prereleases; each branch publishes itself
when a shipped input changes.

- Workflows: drop build-datebadge-task, build-nugetlibrary-task, and
  get-version-task; add validate-task (unit tests + lint); rework
  build-release-task (NBGV, keyless OIDC NuGet push, flat Utilities.7z),
  publish-release (push/dispatch self-publisher), test-pull-request
  (validate + smoke-build + required aggregator), and merge-bot
  (Dependabot only, no codegen job).
- Add WORKFLOW.md (canonical CI/CD spec) and repo-config/ (rulesets and
  settings as code; delete_branch_on_merge off).
- Add cspell.json as the single spell-check source; reconcile AGENTS,
  CODESTYLE, copilot-instructions, dependabot, tasks.json, and the slnx.
- Bump version floor 3.5 -> 3.6; update README and HISTORY.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 28, 2026 03:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Replaces the repo's CI/CD pipeline with a branch-scoped self-publishing model: main publishes stable releases, develop publishes prereleases, and publishes are triggered only by shipped-input changes (or manual dispatch). It also codifies the workflow contract and required GitHub configuration as documentation + config-as-code.

Changes:

  • Introduces a new workflow architecture: reusable validate-task, ref-scoped CI on push, and a self-publishing publish-release triggered by shipped-input path inclusions.
  • Reworks the release build to use a single build/release task with NBGV outputs threaded through, OIDC NuGet publishing via NuGet/login, and a flat Utilities.7z release asset.
  • Adds/updates repo documentation and configuration artifacts (WORKFLOW.md, repo-config/, cspell.json) and bumps the version floor to 3.6.

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
WORKFLOW.md Adds the canonical CI/CD contract, architecture, and audit methodology for workflows and repo configuration.
version.json Bumps version floor from 3.5 to 3.6.
Utilities.slnx Updates solution items to include new docs/config and new workflow; removes deleted workflows.
Utilities.code-workspace Removes embedded CSpell word list in favor of repo-root cspell.json.
repo-config/settings.json Codifies repository settings (merge methods, auto-merge, delete-branch-on-merge off).
repo-config/ruleset-main.json Adds config-as-code for the main branch ruleset (merge-only, required check, signatures).
repo-config/ruleset-develop.json Adds config-as-code for the develop branch ruleset (squash-only + linear history, required check, signatures).
repo-config/README.md Documents repo-config purpose, usage, and lockstep requirements for required-check renames.
repo-config/configure.sh Adds an idempotent apply/check script to audit and enforce repo settings/rulesets/secrets presence.
README.md Updates project README to reflect new distribution links, badges, and CI/CD/release model summary.
HISTORY.md Adds v3.6 release notes focused on CI/CD changes and new workflow artifacts.
cspell.json Adds a centralized CSpell configuration and dictionary.
CODESTYLE.md Updates coding-style guide to align with the new validation model (CI lint gate + cspell.json).
AGENTS.md Refactors agent guidance to point to WORKFLOW.md for CI/CD and repo-config for enforced GitHub settings.
.vscode/tasks.json Cleans up task header comments and clarifies which tasks form the clean-compile set.
.github/workflows/validate-task.yml Adds reusable validation task: unit tests + CSharpier/dotnet-format/markdownlint/cspell/actionlint.
.github/workflows/test-pull-request.yml Reworks CI to run on push (head-resolved reusable workflows) and produces the required aggregator job.
.github/workflows/publish-release.yml Reworks publisher to be branch-scoped and shipped-input-triggered; gates publish on validate-task.
.github/workflows/merge-bot-pull-request.yml Simplifies merge-bot to Dependabot auto-merge only (no semver-major exception), with App-token strategy.
.github/workflows/get-version-task.yml Removes old reusable version task (inlined into build-release-task).
.github/workflows/build-release-task.yml Reworks the core build/version/publish logic (NBGV, OIDC NuGet push, Utilities.7z, artifact lifecycle).
.github/workflows/build-nugetlibrary-task.yml Removes old build task (superseded by build-release-task).
.github/workflows/build-datebadge-task.yml Removes date-badge workflow/task (no longer part of the contract).
.github/dependabot.yml Updates rationale comments; preserves dual-target main/develop Dependabot strategy.
.github/copilot-instructions.md Minor wording updates to reflect CODESTYLE.md section framing.

Comment thread .github/workflows/build-release-task.yml
Comment thread .github/workflows/test-pull-request.yml
@ptr727
ptr727 merged commit fcd4f92 into develop Jun 28, 2026
10 checks passed
@ptr727
ptr727 deleted the feature/branch-scoped-cicd branch June 28, 2026 04:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants