Skip to content

Commit

Permalink
fix: 清理老包解决版本对比问题
Browse files Browse the repository at this point in the history
  • Loading branch information
icyleaf committed Jan 6, 2021
1 parent 85946ed commit 37cfc99
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions app/jobs/clean_old_releases_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def clean_old_releases(channel)
versions = channel.release_versions
return if versions.blank?

latest_version = versions.max { |a,b| Gem::Version.new(a) <=> Gem::Version.new(b) }
latest_version = versions.max { |a,b| compare_version(a, b) }
previous_versions = versions.delete_if { |v| v == latest_version }
previous_versions.each do |value|
clean_previouse_build_version(channel, value)
Expand All @@ -27,7 +27,7 @@ def clean_previouse_build_version(channel, release_version)
return if releases.size <= 1

versions = releases.map(&:version)
latest_version = versions.max { |a,b| Gem::Version.new(a) <=> Gem::Version.new(b) }
latest_version = versions.max { |a,b| compare_version(a, b) }
logger.info("Delete channel [#{channel.id}] has versions: #{versions} and latest verison is #{latest_version}")

remove_releases(channel, releases, latest_version)
Expand All @@ -41,4 +41,12 @@ def remove_releases(channel, releases, latest_version)
release.destroy
end
end

def compare_version(a, b)
Gem::Version.new(b) <=> Gem::Version.new(a)
rescue ArgumentError => e
# Note: 处理版本号是 android-1.2.3 类似非标版本号的异常,如有发现就放最后面
# 后续如果有人反馈问题多了再说,看到本注释的请告知遵守版本号标准
e.message.include?(a) ? 1 : -1
end
end

0 comments on commit 37cfc99

Please sign in to comment.