Update release processes to support release servicing branches (#1620)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Jeff Handley 2026-06-03 01:35:15 -07:00 • committed by GitHub
commit bc372f18c6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 199 additions and 86 deletions

View file

@ -1,27 +0,0 @@
# Release Process
The following process is used when publishing new releases to NuGet.org.
## 1. Ensure the CI workflow is fully green
- Some integration tests are flaky and may require re-running
- Once the state of the branch is known to be good, a release can proceed
- **The release workflow _does not_ run tests** — CI must be green before starting
## 2. Prepare the release
From a local clone of the repository, use Copilot CLI to invoke the `prepare-release` skill. The skill assesses the semantic version, bumps the version in [`src/Directory.Build.props`](../../src/Directory.Build.props), runs API compatibility checks, reviews documentation, drafts release notes, and creates a pull request with all release artifacts.
Review the PR, request changes if needed, and merge when ready.
## 3. Publish the release
After the prepare-release PR is merged, invoke the `publish-release` skill. The skill checks for any late-arriving PRs that could affect the release, refreshes the release notes, and creates a **draft** GitHub release.
Review the draft release on GitHub, check 'Set as a pre-release' if appropriate, and click 'Publish release'.
## 4. Monitor the Release workflow
- After publishing, a workflow will produce build artifacts and publish the NuGet packages to NuGet.org
- If the job fails, troubleshoot and re-run the workflow as needed
- Verify the package version becomes listed at [nuget.org/packages/ModelContextProtocol](https://www.nuget.org/packages/ModelContextProtocol)

View file

@ -1,19 +1,24 @@
# Publish new package versions of ModelContextProtocol
#
# Daily and Manual Runs
# - Triggered automatically at 07:00 UTC daily
# - Triggered manually using GitHub Actions workflow_dispatch event
# - Version prefix applied from /src/Directory.Build.props
# - Version suffix set to `ci.{github.run_number}`
# - Package published to GitHub package registry
# Triggers
# - Scheduled (07:00 UTC daily, main branch): produces a CI-suffixed package
# and publishes it to the GitHub package registry.
#
# Official Releases
# - Triggered after a GitHub Release is created
# - Version prefix applied from /src/Directory.Build.props
# - Version suffix applied from /src/Directory.Build.props
# - Package published to GitHub package registry
# - Package published to NuGet.org
# - Version prefix and/or suffix should be updated after each release
# - Push to `release/**`: every commit to a release branch produces a CI-suffixed
# package and publishes it to the GitHub package registry.
#
# - Manual `workflow_dispatch` (any branch): same outputs as a scheduled/push build;
# accepts a `version_suffix_override` input.
#
# - GitHub Release published (any branch's tag): publishes the version from
# `src/Directory.Build.props` to the GitHub package registry AND NuGet.org.
#
# Version
# - Version prefix and suffix come from `src/Directory.Build.props`.
# - For non-release triggers, the suffix is replaced with `ci.{run_number}`
# (or `workflow_dispatch.inputs.version_suffix_override` when provided).
# - The prefix and suffix in `Directory.Build.props` should be updated after each
# release using the `bump-version` or `prepare-release` skills.
name: Release Publishing
@ -21,6 +26,10 @@ on:
schedule:
- cron: '0 7 * * *'
push:
branches:
- 'release/**'
workflow_dispatch:
inputs:
version_suffix_override: