Repository navigation
Draft ruby Release #12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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: | |
| workflow_dispatch: | |
| inputs: | |
| bump_type: | |
| description: "Semver bump type" | |
| required: true | |
| type: choice | |
| options: | |
| - patch | |
| - minor | |
| - major | |
| default: patch | |
| concurrency: | |
| group: ${{ github.workflow }} | |
| cancel-in-progress: false | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| draft-release: | |
| name: Draft mailtrap-ruby Release | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| 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: | | |
| 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: | |
| NEXT: ${{ steps.bump.outputs.next }} | |
| run: | | |
| cat > "./lib/mailtrap/version.rb" <<EOF | |
| # frozen_string_literal: true | |
| module Mailtrap | |
| VERSION = '${NEXT}' | |
| 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 | |
| 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 }} |