From dd6febc9ced33c36db6df059afcd04274876043f Mon Sep 17 00:00:00 2001 From: Shane da Silva Date: Sat, 5 Sep 2026 23:50:09 -0700 Subject: [PATCH] Add automated release flow --- .github/workflows/release-gem.yml | 41 +++++++++++++++++++++++++++++++ Gemfile | 1 + Rakefile | 3 +++ 3 files changed, 45 insertions(+) create mode 100644 .github/workflows/release-gem.yml create mode 100644 Rakefile diff --git a/.github/workflows/release-gem.yml b/.github/workflows/release-gem.yml new file mode 100644 index 00000000..fee439eb --- /dev/null +++ b/.github/workflows/release-gem.yml @@ -0,0 +1,41 @@ +name: Release Gem +on: + push: + tags: + - v* + +jobs: + release: + timeout-minutes: 10 + runs-on: ubuntu-latest + environment: release + + permissions: + contents: write + id-token: write + + steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Set up Ruby + uses: ruby/setup-ruby@9eb537ca036ebaed86729dcb9309076e4c5c3b74 # v1.314.0 + with: + ruby-version: '4.0' + + - name: Install dependencies + run: bundle install + + - name: Publish gem + uses: rubygems/release-gem@052cc82692552de3ef2b81fd670e41d13cba8092 # v1.4.0 + + - name: Create GitHub release + env: + GH_TOKEN: ${{ github.token }} + TAG_NAME: ${{ github.ref_name }} + run: | + VERSION="${TAG_NAME#v}" + gh release create "$TAG_NAME" \ + --title "$VERSION" \ + --generate-notes diff --git a/Gemfile b/Gemfile index 2c3a8bb3..8fbf96a6 100644 --- a/Gemfile +++ b/Gemfile @@ -6,6 +6,7 @@ gemspec # Development dependencies are listed below +gem 'rake' gem 'rspec', '~> 3.0' gem 'simplecov', '~> 0.21.0' diff --git a/Rakefile b/Rakefile new file mode 100644 index 00000000..7398a900 --- /dev/null +++ b/Rakefile @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require 'bundler/gem_tasks'