@@ -262,18 +262,10 @@ func (o *FeatureGateTestAnalyzerOptions) Run(ctx context.Context) error {
262262
263263func buildHTMLFeatureGateData (name string , testingResults map [JobVariant ]* TestingResults , blockingErrors []error , release string ) utils.HTMLFeatureGate {
264264 jobVariantsSet := sets .KeySet (testingResults )
265- jobVariants := jobVariantsSet .UnsortedList ()
265+ jobVariants := OrderedJobVariants (jobVariantsSet .UnsortedList ())
266+
267+ sort .Sort (jobVariants )
266268
267- // For HTML sort so that the network stacks are in the same order.
268- var networkStackOrder = map [string ]int {
269- "" : 0 ,
270- "ipv4" : 1 ,
271- "ipv6" : 2 ,
272- "dual" : 3 ,
273- }
274- sort .SliceStable (jobVariants , func (i , j int ) bool {
275- return networkStackOrder [jobVariants [i ].NetworkStack ] < networkStackOrder [jobVariants [j ].NetworkStack ]
276- })
277269 variants := make ([]utils.HTMLVariantColumn , 0 , len (jobVariants ))
278270 for i , jv := range jobVariants {
279271 variants = append (variants , utils.HTMLVariantColumn {
@@ -645,14 +637,41 @@ func (a OrderedJobVariants) Less(i, j int) bool {
645637 return false
646638 }
647639
640+ // Map these to an ordered list of strings so that we can define the order
641+ // rather than them being alphabetical.
642+ var networkStackOrder = map [string ]string {
643+ "" : "0" ,
644+ "ipv4" : "1" ,
645+ "ipv6" : "2" ,
646+ "dual" : "3" ,
647+ }
648+
649+ if strings .Compare (networkStackOrder [a [i ].NetworkStack ], networkStackOrder [a [j ].NetworkStack ]) < 0 {
650+ return true
651+ } else if strings .Compare (networkStackOrder [a [i ].NetworkStack ], networkStackOrder [a [j ].NetworkStack ]) > 0 {
652+ return false
653+ }
654+
655+ if strings .Compare (a [i ].OS , a [j ].OS ) < 0 {
656+ return true
657+ } else if strings .Compare (a [i ].OS , a [j ].OS ) > 0 {
658+ return false
659+ }
660+
661+ if strings .Compare (a [i ].JobTiers , a [j ].JobTiers ) < 0 {
662+ return true
663+ } else if strings .Compare (a [i ].JobTiers , a [j ].JobTiers ) > 0 {
664+ return false
665+ }
666+
648667 return false
649668}
650669
651670type TestingResults struct {
652671 JobVariant JobVariant
653672
654- TestResults []TestResults
655- HasCandidateTierResults bool // true if candidate-tier queries returned any test data
673+ TestResults []TestResults
674+ HasCandidateTierResults bool // true if candidate-tier queries returned any test data
656675}
657676
658677type TestResults struct {
0 commit comments