From 7ccbfe3c186d8f42625b4c01ef9e0f463de890de Mon Sep 17 00:00:00 2001 From: Igor Dobryn Date: Tue, 30 Jun 2026 15:28:57 +0300 Subject: [PATCH 1/2] Implement draft-release workflow --- .github/workflows/draft-release.yml | 80 ++++++++++++++++++++++++++--- 1 file changed, 74 insertions(+), 6 deletions(-) diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index 7853dfc..fb4c84c 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -1,4 +1,5 @@ -# Placeholder draft-release workflow +# Drafts new mailtrap-ruby release: bumps the version, regenerates the changelog from +# merged PRs, and opens a release PR against main. # name: Draft ruby Release on: @@ -14,14 +15,81 @@ on: - major default: patch +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: false + +permissions: + contents: write + pull-requests: write + jobs: draft-release: - name: Draft ruby Release (placeholder) + name: Draft mailtrap-ruby Release runs-on: ubuntu-latest steps: - - name: Echo inputs + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: main + + - name: Read current version + id: read + run: | + version=$(ruby -r "./lib/mailtrap/version.rb" -e "puts Mailtrap::VERSION") + echo "version=$version" >> "$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: Update version in version file + if: steps.notes.outputs.release_notes != '' env: - BUMP_TYPE: ${{ inputs.bump_type }} + NEXT: ${{ steps.bump.outputs.next }} run: | - echo "Placeholder draft-release workflow" - echo "bump_type=$BUMP_TYPE" + cat > "./lib/mailtrap/version.rb" < Date: Wed, 1 Jul 2026 09:29:42 +0300 Subject: [PATCH 2/2] Install dependencies --- .github/workflows/draft-release.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index fb4c84c..c711bbf 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -33,6 +33,11 @@ jobs: fetch-depth: 0 ref: main + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.3" + - name: Read current version id: read run: | @@ -70,6 +75,11 @@ jobs: end EOF + - name: Install dependencies + if: steps.notes.outputs.release_notes != '' + run: | + bundle install + - name: Prepend new section to CHANGELOG.md if: steps.notes.outputs.release_notes != '' uses: railsware/github-actions/prepend-changelog@master