@@ -6,6 +6,7 @@ package OpenQA::BuildResults;
6
6
use Mojo::Base -strict, -signatures;
7
7
8
8
use OpenQA::Jobs::Constants;
9
+ use OpenQA::Constants qw( BUILD_SORT_BY_NAME BUILD_SORT_BY_NEWEST_JOB BUILD_SORT_BY_OLDEST_JOB) ;
9
10
use OpenQA::Schema::Result::Jobs;
10
11
use OpenQA::Utils;
11
12
use OpenQA::Log qw( log_error) ;
@@ -131,13 +132,18 @@ sub compute_build_results ($group, $limit, $time_limit_days, $tags, $subgroup_fi
131
132
return \%result ;
132
133
}
133
134
135
+ # build sorting
136
+ my $buildver_sort_mode = BUILD_SORT_BY_NAME;
137
+ $buildver_sort_mode = $group -> build_version_sort if $group -> can(' build_version_sort' );
138
+ my $sort_column = $buildver_sort_mode == BUILD_SORT_BY_OLDEST_JOB ? ' oldest_job' : ' newest_job' ;
139
+
134
140
# 400 is the max. limit selectable in the group overview
135
141
my $row_limit = (defined ($limit ) && $limit > 400) ? $limit : 400;
136
142
my @search_cols = qw( VERSION BUILD) ;
137
143
my %search_opts = (
138
- select => [@search_cols , {max => ' id' , -as => ' lasted_job ' }],
144
+ select => [@search_cols , {max => ' id' , -as => ' newest_job ' }, { min => ' id ' , - as => ' oldest_job ' }],
139
145
group_by => \@search_cols ,
140
- order_by => {-desc => ' lasted_job ' },
146
+ order_by => {-desc => $sort_column },
141
147
rows => $row_limit
142
148
);
143
149
my %search_filter = (group_id => {in => $group_ids });
@@ -169,12 +175,7 @@ sub compute_build_results ($group, $limit, $time_limit_days, $tags, $subgroup_fi
169
175
$build -> {key } = join (' -' , $version , $buildnr );
170
176
$versions_per_build {$buildnr }-> {$version } = 1;
171
177
}
172
- # sort by treating the key as a version number, if job group
173
- # indicates this is OK (the default). otherwise, list remains
174
- # sorted on the most recent job for each build
175
- my $versort = 1;
176
- $versort = $group -> build_version_sort if $group -> can(' build_version_sort' );
177
- if ($versort ) {
178
+ if ($buildver_sort_mode == BUILD_SORT_BY_NAME) {
178
179
@builds = reverse sort { versioncmp($a -> {key }, $b -> {key }); } @builds ;
179
180
}
180
181
0 commit comments