From be43ad37b7fe7dbeaec653c4ec3dfcf5999e2824 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Thu, 11 Dec 2025 17:57:37 -0800 Subject: [PATCH] release.yml: Fix tag conversion for Ruby 4.0 and PREVIOUS_RELEASE_TAG for any .0 releases --- .github/workflows/release.yml | 4 ++-- tool/ruby-version.rb | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) mode change 100644 => 100755 tool/ruby-version.rb diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 03227bcd723..3caeee9a3b8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,9 +49,9 @@ jobs: - name: Create a release on GitHub run: | - RELEASE_TAG=$(echo v${{ env.RUBY_VERSION }} | sed 's/\./_/g') + RELEASE_TAG=$(ruby tool/ruby-version.rb tag "${{ env.RUBY_VERSION }}") echo $RELEASE_TAG - PREVIOUS_RELEASE_TAG=$(echo $RELEASE_TAG | awk 'BEGIN {FS="_"; OFS="_"}{ $NF=$NF-1; print }') + PREVIOUS_RELEASE_TAG=$(ruby tool/ruby-version.rb previous-tag "${{ env.RUBY_VERSION }}") echo $PREVIOUS_RELEASE_TAG tool/gen-github-release.rb $PREVIOUS_RELEASE_TAG $RELEASE_TAG --no-dry-run env: diff --git a/tool/ruby-version.rb b/tool/ruby-version.rb old mode 100644 new mode 100755 index aaaa345e75b..3bbec576e13 --- a/tool/ruby-version.rb +++ b/tool/ruby-version.rb @@ -1,3 +1,5 @@ +#!/usr/bin/env ruby + module RubyVersion def self.tag(version) major_version = Integer(version.split('.', 2)[0]) @@ -35,3 +37,16 @@ module RubyVersion end end end + +if __FILE__ == $0 + case ARGV[0] + when "tag" + print RubyVersion.tag(ARGV[1]) + when "previous" + print RubyVersion.previous(ARGV[1]) + when "previous-tag" + print RubyVersion.tag(RubyVersion.previous(ARGV[1])) + else + "#{$0}: unexpected command #{ARGV[0].inspect}" + end +end