rosa-build/lib/tasks/buildlist.rake

49 lines
1.4 KiB
Ruby

namespace :buildlist do
namespace :clear do
desc 'Remove outdated BuildLists and MassBuilds'
task :outdated => :environment do
say "Removing outdated BuildLists"
outdated = BuildList.outdated
say "There are #{outdated.count} outdated BuildLists at #{Time.now}"
BuildList.outdated.destroy_all
say "Removing outdated MassBuilds"
outdated = MassBuild.outdated
say "There are #{outdated.count} outdated MassBuilds at #{Time.now}"
MassBuild.outdated.destroy_all
say "Outdated BuildLists and MassBuilds was successfully removed"
end
end
namespace :packages do
# TODO Maybe do it in migration, because it's just a single query?
desc 'Actualize packages for all platforms'
task :actualize => :environment do
say "Updating packages"
packages = BuildList::Package.joins( %q{
JOIN (
SELECT
name AS j_pn,
package_type AS j_pt,
platform_id AS j_plid,
MAX(created_at) AS j_ca
FROM
build_list_packages
GROUP BY
j_pn, j_pt, j_plid
) AS lastmaints
ON
j_pn = name
AND j_pt = package_type
AND j_plid = platform_id
AND j_ca = created_at
} ).update_all(:actual => true)
say "'Actual' setted to #{packages} packages"
end
end
end