Skip to content

Add Prepare Release GitHub Action for automated release kickoff#686

Merged
YunchuWang merged 2 commits intomainfrom
wangbill/add-prepare-release-workflow
Mar 24, 2026
Merged

Add Prepare Release GitHub Action for automated release kickoff#686
YunchuWang merged 2 commits intomainfrom
wangbill/add-prepare-release-workflow

Conversation

@YunchuWang
Copy link
Copy Markdown
Member

Summary

What changed?

  • Added a new \Prepare Release\ GitHub Actions workflow (.github/workflows/prepare-release.yaml) to automate SDK release preparation, aligned with the existing workflow in durabletask-js.
  • Updated doc/release_process.md to document the automated release workflow and restructure the release process documentation.

Why is this change needed?

  • The durabletask-js repo already has an automated Prepare Release GitHub Action that handles version bumping, changelog generation, branch/tag creation, and PR link generation. This PR brings the same automation to durabletask-dotnet for consistency and to reduce manual release toil.

What the workflow does

  1. Determines next version: Auto-increments from eng/targets/Release.props or accepts explicit version input
  2. Generates changelog: Uses git log diff between latest tag and HEAD
  3. Updates Release.props: Sets VersionPrefix and VersionSuffix
  4. Updates CHANGELOG.md: Inserts new version section after ## Unreleased
  5. Creates release branch + tag: release/vX.Y.Z and vX.Y.Z
  6. Provides PR creation link in the workflow summary

Issues / work items

  • Aligning release process with durabletask-js

Project checklist

  • Release notes are not required for the next release
  • Backport is not required
  • All required tests have been added/updated (unit tests, E2E tests)
    • N/A - this is a CI workflow, validated by running the workflow itself
  • Breaking change? No

AI-assisted code disclosure (required)

Was an AI tool used? (select one)

  • No
  • Yes, AI helped write parts of this PR (e.g., GitHub Copilot)
  • Yes, an AI agent generated most of this PR

If AI was used:

  • Tool(s): GitHub Copilot
  • AI-assisted areas/files: .github/workflows/prepare-release.yaml, doc/release_process.md
  • What you changed after AI output: Reviewed and finalized

AI verification (required if AI was used):

  • I understand the code and can explain it
  • I verified referenced APIs/types exist and are correct
  • I reviewed edge cases/failure paths (timeouts, retries, cancellation, exceptions)
  • I reviewed concurrency/async behavior
  • I checked for unintended breaking or behavior changes

Copilot AI review requested due to automatic review settings March 24, 2026 19:46
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds an automated “Prepare Release” GitHub Actions workflow to kick off SDK releases (version bump + changelog + branch/tag creation) and updates the release process documentation to describe this automation.

Changes:

  • Introduces .github/workflows/prepare-release.yaml to automate version calculation, changelog generation, and creation of release/vX.Y.Z + vX.Y.Z.
  • Updates doc/release_process.md to document the recommended automated release preparation flow and reorganize publishing steps.

Reviewed changes

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

File Description
.github/workflows/prepare-release.yaml New workflow to bump eng/targets/Release.props, update CHANGELOG.md, and push a release branch/tag.
doc/release_process.md Documents the new workflow and clarifies the end-to-end release/publishing process.

@YunchuWang
Copy link
Copy Markdown
Member Author

Addressing review comments:

Comment 1 (silent version parse fallback): This matches the pattern in the durabletask-js sibling workflow intentionally. The version in Release.props is tightly controlled so regex miss is very unlikely. If we want to add validation, it would make sense as a follow-up across both repos for consistency.

Comment 2 (git commit fails on re-runs): Fixed - added git diff --cached --quiet guard so re-runs don't fail when there are no changes to commit.

Comment 3 (force-push risk on tags): The force-push pattern is intentional for re-run support and matches the JS sibling workflow. Since this is a manually-triggered workflow_dispatch only accessible to maintainers, the risk of accidental overwrite is low. Published releases are further protected by the ADO pipeline being a separate manual step.

Comment 4 (unused release_date): Fixed - removed the unused RELEASE_DATE / release_date variable.

Comment 5 (doc wording mismatch): Fixed - updated wording in both the YAML workflow input description and doc/release_process.md to accurately describe auto-increment behavior for both stable and pre-release versions.

@YunchuWang YunchuWang merged commit d58d3ad into main Mar 24, 2026
7 checks passed
@YunchuWang YunchuWang deleted the wangbill/add-prepare-release-workflow branch March 24, 2026 20: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.

3 participants