From 1f620c60a896eeb7095a269a480e03a7e2c9a688 Mon Sep 17 00:00:00 2001 From: Igor Dobryn Date: Thu, 9 Jul 2026 13:49:08 +0300 Subject: [PATCH 1/2] Implement draft release workflow --- .github/workflows/draft-release.yml | 73 ++++++++++++++++++++++++++--- CHANGELOG.md | 4 -- 2 files changed, 66 insertions(+), 11 deletions(-) diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index 4b344e46..b38b61ad 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -1,6 +1,10 @@ -# Placeholder draft-release workflow +# Drafts new mailtrap-dotnet release: computes the next version from the latest GitHub release, +# regenerates the changelog from merged PRs, and opens a release PR against main. # -name: Draft dotnet Release +# The version is managed by MinVer, which derives it from the git tag +# current version is read from the latest published GitHub release (vX.Y.Z). +# +name: Draft .NET Release on: workflow_dispatch: inputs: @@ -14,14 +18,69 @@ on: - major default: patch +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: false + +permissions: + contents: write + pull-requests: write + jobs: draft-release: - name: Draft dotnet Release (placeholder) + name: Draft mailtrap-dotnet Release runs-on: ubuntu-latest steps: - - name: Echo inputs + - uses: actions/checkout@v4 + with: + ref: main + + - name: Read current version from latest release + id: read env: - BUMP_TYPE: ${{ inputs.bump_type }} + GH_TOKEN: ${{ github.token }} run: | - echo "Placeholder draft-release workflow" - echo "bump_type=$BUMP_TYPE" + latest=$(gh api "repos/$GITHUB_REPOSITORY/releases/latest" --jq '.tag_name') + echo "version=${latest#v}" >> "$GITHUB_OUTPUT" + + - name: Compute next version + id: bump + uses: railsware/github-actions/compute-next-semver@master + with: + current: ${{ steps.read.outputs.version }} + bump-type: ${{ inputs.bump_type }} + + - name: Abort if tag already exists + uses: railsware/github-actions/abort-if-tag-exists@master + with: + tag: ${{ steps.bump.outputs.tag }} + + - name: Generate release notes + id: notes + uses: railsware/github-actions/generate-release-notes@master + with: + tag: ${{ steps.bump.outputs.tag }} + + - name: Prepend new section to CHANGELOG.md + if: steps.notes.outputs.release_notes != '' + uses: railsware/github-actions/prepend-changelog@master + with: + version: ${{ steps.bump.outputs.next }} + release-notes: ${{ steps.notes.outputs.release_notes }} + + - name: Commit, push, open PR + if: steps.notes.outputs.release_notes != '' + uses: railsware/github-actions/open-sdk-release-pr@master + with: + tag: ${{ steps.bump.outputs.tag }} + current: ${{ steps.read.outputs.version }} + next: ${{ steps.bump.outputs.next }} + bump-type: ${{ inputs.bump_type }} + release-notes: ${{ steps.notes.outputs.release_notes }} + + - name: Create draft GitHub release + if: steps.notes.outputs.release_notes != '' + uses: railsware/github-actions/create-draft-github-release@master + with: + tag: ${{ steps.bump.outputs.tag }} + release-notes: ${{ steps.notes.outputs.release_notes }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 58671ac0..875818ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,3 @@ -# Changelog - -## [Unreleased] - ## [3.2.0] - 2026-05-14 - Add api token, webhook and sub account endpoints by @IgorDobryn in https://github.com/mailtrap/mailtrap-dotnet/pull/240 From 7002be3672ae6248e2d04b1674255d0978605b3f Mon Sep 17 00:00:00 2001 From: Igor Dobryn Date: Thu, 9 Jul 2026 14:00:13 +0300 Subject: [PATCH 2/2] Update dotnet package version in README.md --- .github/workflows/draft-release.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index b38b61ad..9eedf52b 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -61,6 +61,13 @@ jobs: with: tag: ${{ steps.bump.outputs.tag }} + - name: Update version in README.md install commands + if: steps.notes.outputs.release_notes != '' + env: + NEXT: ${{ steps.bump.outputs.next }} + run: | + sed -i -E "s/(dotnet add package [^ ]+ -v )[0-9]+\.[0-9]+\.[0-9]+/\1${NEXT}/g" README.md + - name: Prepend new section to CHANGELOG.md if: steps.notes.outputs.release_notes != '' uses: railsware/github-actions/prepend-changelog@master