diff --git a/.github/workflows/e2e-dummy-gem.yml b/.github/workflows/e2e-dummy-gem.yml index d0e21ed..936f230 100644 --- a/.github/workflows/e2e-dummy-gem.yml +++ b/.github/workflows/e2e-dummy-gem.yml @@ -29,7 +29,7 @@ jobs: strategy: matrix: os: ["macos-latest", "ubuntu-22.04", "windows-latest"] - rubies: ["3.4.7", "3.1.7"] + rubies: ["3.1", "3.4"] type: ["cross", "native"] runs-on: "${{ matrix.os }}" steps: diff --git a/lib/easy_compile/cli.rb b/lib/easy_compile/cli.rb index d68324b..72c670a 100644 --- a/lib/easy_compile/cli.rb +++ b/lib/easy_compile/cli.rb @@ -98,7 +98,7 @@ def ci_template ruby_requirements = compilation_task.gemspec.required_ruby_version latest_supported_ruby_version = RubySeries.latest_version_for_requirements(ruby_requirements) runtime_version_for_compilation = RubySeries.runtime_version_for_compilation(ruby_requirements) - ruby_versions_for_testing = RubySeries.versions_to_test_agaist(ruby_requirements).map(&:to_s) + ruby_versions_for_testing = RubySeries.versions_to_test_against(ruby_requirements) directory(".github", context: instance_eval("binding")) end diff --git a/lib/easy_compile/ruby_series.rb b/lib/easy_compile/ruby_series.rb index 23c4911..99671ce 100644 --- a/lib/easy_compile/ruby_series.rb +++ b/lib/easy_compile/ruby_series.rb @@ -25,9 +25,13 @@ def versions_to_compile_against(requirements) end end - def versions_to_test_agaist(requirements) - latest_rubies.select do |ruby_version| + def versions_to_test_against(requirements) + selected_rubies = latest_rubies.select do |ruby_version| requirements.satisfied_by?(ruby_version) + end.reverse + + selected_rubies.map do |version| + version.segments.tap(&:pop).join('.') end end diff --git a/test/fixtures/expected_github_workflow.yml b/test/fixtures/expected_github_workflow.yml index 55ee4ba..866e182 100644 --- a/test/fixtures/expected_github_workflow.yml +++ b/test/fixtures/expected_github_workflow.yml @@ -34,7 +34,7 @@ jobs: strategy: matrix: os: ["macos-latest", "ubuntu-22.04"] - rubies: ["3.4.7", "3.3.9", "3.2.9", "3.1.7"] + rubies: ["3.1", "3.2", "3.3", "3.4"] type: ["cross", "native"] runs-on: "${{ matrix.os }}" steps: diff --git a/test/fixtures/expected_github_workflow_test_and_workdir.yml b/test/fixtures/expected_github_workflow_test_and_workdir.yml index c82656b..2336b8b 100644 --- a/test/fixtures/expected_github_workflow_test_and_workdir.yml +++ b/test/fixtures/expected_github_workflow_test_and_workdir.yml @@ -36,7 +36,7 @@ jobs: strategy: matrix: os: ["macos-latest", "ubuntu-22.04"] - rubies: ["3.4.7", "3.3.9", "3.2.9", "3.1.7"] + rubies: ["3.1", "3.2", "3.3", "3.4"] type: ["cross", "native"] runs-on: "${{ matrix.os }}" steps: diff --git a/test/fixtures/expected_github_workflow_test_command.yml b/test/fixtures/expected_github_workflow_test_command.yml index 94dbd7a..26c67a6 100644 --- a/test/fixtures/expected_github_workflow_test_command.yml +++ b/test/fixtures/expected_github_workflow_test_command.yml @@ -34,7 +34,7 @@ jobs: strategy: matrix: os: ["macos-latest", "ubuntu-22.04"] - rubies: ["3.4.7", "3.3.9", "3.2.9", "3.1.7"] + rubies: ["3.1", "3.2", "3.3", "3.4"] type: ["cross", "native"] runs-on: "${{ matrix.os }}" steps: diff --git a/test/fixtures/expected_github_workflow_working_dir.yml b/test/fixtures/expected_github_workflow_working_dir.yml index 6723794..01f6878 100644 --- a/test/fixtures/expected_github_workflow_working_dir.yml +++ b/test/fixtures/expected_github_workflow_working_dir.yml @@ -36,7 +36,7 @@ jobs: strategy: matrix: os: ["macos-latest", "ubuntu-22.04"] - rubies: ["3.4.7", "3.3.9", "3.2.9", "3.1.7"] + rubies: ["3.1", "3.2", "3.3", "3.4"] type: ["cross", "native"] runs-on: "${{ matrix.os }}" steps: diff --git a/test/ruby_series_test.rb b/test/ruby_series_test.rb index 00ae5b7..139a9e4 100644 --- a/test/ruby_series_test.rb +++ b/test/ruby_series_test.rb @@ -50,14 +50,14 @@ def test_versions_to_compile_against_bis def test_versions_to_test_against requirements = Gem::Requirement.new("~> 3.4") - assert_equal(["3.4.7"], RubySeries.versions_to_test_agaist(requirements).map(&:to_s)) + assert_equal(["3.4"], RubySeries.versions_to_test_against(requirements).map(&:to_s)) end def test_versions_to_test_against_bis requirements = Gem::Requirement.new(">= 3.1") - expected = ["3.4.7", "3.3.9", "3.2.9", "3.1.7"] + expected = ["3.1", "3.2", "3.3", "3.4"] - assert_equal(expected, RubySeries.versions_to_test_agaist(requirements).map(&:to_s)) + assert_equal(expected, RubySeries.versions_to_test_against(requirements).map(&:to_s)) end end end