Skip to content
Snippets Groups Projects
Commit 5cd881a9 authored by Tetiana Chupryna's avatar Tetiana Chupryna :sunflower:
Browse files

Merge branch 'pedropombeiro/358406/fix-query-for-unknown-runner-releases' into 'master'

Fix recommendation for unpublished runner release

See merge request !92465
parents 965cc25d b283c88d
No related branches found
No related tags found
1 merge request!92465Fix recommendation for unpublished runner release
Pipeline #589080475 canceled
......@@ -20,9 +20,8 @@ def check_runner_upgrade_status(runner_version)
return { recommended: recommended_version } if recommended_version
# Consider update if there's a newer release within the currently deployed GitLab version
if available_runner_release(runner_version)
return { available: runner_releases_store.releases_by_minor[gitlab_version.without_patch] }
end
available_version = available_runner_release(runner_version)
return { available: available_version } if available_version
{ not_available: runner_version }
end
......@@ -31,18 +30,21 @@ def check_runner_upgrade_status(runner_version)
def recommended_runner_release_update(runner_version)
recommended_release = runner_releases_store.releases_by_minor[runner_version.without_patch]
return recommended_release if recommended_release && recommended_release > runner_version
recommended_release if recommended_release && recommended_release > runner_version
# Consider the edge case of pre-release runner versions that get registered, but are never published.
# In this case, suggest the latest compatible runner version
latest_release = runner_releases_store.releases_by_minor.values.select { |v| v < gitlab_version }.max
latest_release if latest_release && latest_release > runner_version
end
def available_runner_release(runner_version)
available_release = runner_releases_store.releases_by_minor[gitlab_version.without_patch]
available_release if available_release && available_release > runner_version
end
def gitlab_version
@gitlab_version ||= ::Gitlab::VersionInfo.parse(::Gitlab::VERSION)
@gitlab_version ||= ::Gitlab::VersionInfo.parse(::Gitlab::VERSION, parse_suffix: true)
end
def runner_releases_store
......
......@@ -143,6 +143,22 @@
end
end
end
context 'up to 15.1.0' do
let(:available_runner_releases) { %w[14.9.1 14.9.2 14.10.0 14.10.1 15.0.0 15.1.0] }
context 'with Gitlab::VERSION set to 15.2.0-pre' do
let(:gitlab_version) { '15.2.0-pre' }
context 'with unknown runner version' do
let(:runner_version) { '14.11.0~beta.29.gd0c550e3' }
it 'recommends 15.1.0 since 14.11 is an unknown release and 15.1.0 is available' do
is_expected.to eq({ recommended: Gitlab::VersionInfo.new(15, 1, 0) })
end
end
end
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment