Improve script for listing versions

This commit is contained in:
Benoit Daloze
2025-02-22 17:11:22 +01:00
parent 32110d4e31
commit 3ad45c51bf
+21 -10
View File
@@ -2,21 +2,32 @@ require 'json'
hash = File.read('ruby-builder-versions.json')
versions = JSON.load(hash).transform_keys(&:to_sym)
by_minor = versions[:ruby].group_by { |v| v[/^\d\.\d/] }
ONLY_LATEST_PATCH = ENV['ONLY_LATEST_PATCH']
by_minor.each_pair do |minor, versions|
puts versions.map { |v| "ruby-#{v}" }.join(', ') if minor
def filter(versions)
versions -= %w[head]
if ONLY_LATEST_PATCH
versions = versions.group_by { |v| v[/^\d+\.\d+/] }.map { _2.last }
end
versions
end
if ONLY_LATEST_PATCH
puts filter(versions[:ruby]).map { |v| "ruby-#{v}" }.join(', ')
else
by_minor = versions[:ruby].group_by { |v| v[/^\d+\.\d+/] }
by_minor.each_pair do |minor, versions|
puts versions.map { |v| "ruby-#{v}" }.join(', ') if minor
end
end
puts
puts (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" }.join(', ')
puts filter(versions[:truffleruby]).map { |v| "truffleruby-#{v}" }.join(', ')
puts
puts (versions[:"truffleruby+graalvm"] - %w[head]).map { |v| "truffleruby+graalvm-#{v}" }.join(', ')
puts filter(versions[:"truffleruby+graalvm"]).map { |v| "truffleruby+graalvm-#{v}" }.join(', ')
puts
puts (versions[:jruby] - %w[head]).map { |v| "jruby-#{v}" }.join(', ')
(versions[:jruby] - %w[head]).each do |v|
puts "- { os: windows-latest, jruby-version: #{v}, ruby: jruby-#{v} }"
end
puts filter(versions[:jruby]).map { |v| "jruby-#{v}" }.join(', ')
puts "For Windows:"
puts filter(versions[:jruby]).join(', ')