diff --git a/versions-strings-for-builder.rb b/versions-strings-for-builder.rb index 6a5000c..4217803 100644 --- a/versions-strings-for-builder.rb +++ b/versions-strings-for-builder.rb @@ -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(', ')