aboutsummaryrefslogtreecommitdiff
blob: 4fb48d18d605717a28b7099bd7b7e16e6b771a50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class RubyTinderbox < Sinatra::Base
	get '/new_targets' do
		update_timestamp = Package.first[:update_timestamp]
		portage_timestamp = Package.first[:portage_timestamp]
		packages = []
		Package.each do |package|
			build_current = package.build_dataset.where(target: 'current').reverse_order(:timestamp).first
			next if build_current.nil? || build_current[:result] != 'succeeded'

			build_next = package.build_dataset.where(target: 'next').reverse_order(:timestamp).first
			next if build_next.nil? || build_next[:result] != 'succeeded'

			repoman_current = package.repoman_dataset.where(target: 'current').reverse_order(:timestamp).first
			next if repoman_current.nil? || repoman_current[:result] != 'passed'

			repoman_next = package.repoman_dataset.where(target: 'next').reverse_order(:timestamp).first
			next if repoman_next.nil? || repoman_next[:result] != 'passed'

			packages << [package, build_current, build_next, repoman_current, repoman_next]
		end
		packages = packages.compact.sort_by { |package| package[0][:identifier] }
		erb :new_targets, locals: { packages: packages, update_timestamp: update_timestamp, portage_timestamp: portage_timestamp }
	end
end