@@ -500,9 +500,15 @@ object GenerativePlugin extends AutoPlugin {
500500      }
501501    }
502502
503-     val  renderedMatricesPre  =  job.matrixAdds.toList.sortBy(_._1) map {
504-       case  (key, values) =>  s " $key:  ${values.map(wrap).mkString(" [" " , " " ]" " 
505-     } mkString " \n " 
503+     val  renderedMatricesAdds  = 
504+       if  (job.matrixAdds.isEmpty) " " 
505+       else 
506+         job
507+           .matrixAdds
508+           .toList
509+           .sortBy(_._1)
510+           .map { case  (key, values) =>  s " $key:  ${values.map(wrap).mkString(" [" " , " " ]" "  }
511+           .mkString(" \n " " \n " " " 
506512
507513    //  TODO refactor all of this stuff to use whitelist instead
508514    val  whitelist  =  Map (
@@ -524,44 +530,35 @@ object GenerativePlugin extends AutoPlugin {
524530      }
525531    }
526532
527-     val  renderedIncludesPre  =  if  (job.matrixIncs.isEmpty) {
528-       renderedMatricesPre
529-     } else  {
530-       job.matrixIncs.foreach(inc =>  checkMatching(inc.matching))
531- 
532-       val  rendered  =  compileListOfSimpleDicts(
533-         job.matrixIncs.map(i =>  i.matching ++  i.additions))
533+     val  renderedIncludes  = 
534+       if  (job.matrixIncs.isEmpty) " " 
535+       else  {
536+         job.matrixIncs.foreach(inc =>  checkMatching(inc.matching))
534537
535-       val  renderedMatrices  = 
536-         if  (renderedMatricesPre.isEmpty)
537-           " " 
538-         else 
539-           renderedMatricesPre +  " \n " 
540- 
541-       s " ${renderedMatrices}include: \n ${indent(rendered, 1 )}" 
542-     }
538+         val  rendered  =  compileListOfSimpleDicts(
539+           job.matrixIncs.map(i =>  i.matching ++  i.additions))
543540
544-     val  renderedExcludesPre  =  if  (job.matrixExcs.isEmpty) {
545-       renderedIncludesPre
546-     } else  {
547-       job.matrixExcs.foreach(exc =>  checkMatching(exc.matching))
541+         s " \n include: \n ${indent(rendered, 1 )}" 
542+       }
548543
549-       val  rendered  =  compileListOfSimpleDicts(job.matrixExcs.map(_.matching))
544+     val  renderedExcludes  = 
545+       if  (job.matrixExcs.isEmpty) " " 
546+       else  {
547+         job.matrixExcs.foreach(exc =>  checkMatching(exc.matching))
550548
551-       val  renderedIncludes  = 
552-         if  (renderedIncludesPre.isEmpty)
553-           " " 
554-         else 
555-           renderedIncludesPre +  " \n " 
549+         val  rendered  =  compileListOfSimpleDicts(job.matrixExcs.map(_.matching))
556550
557-       s " ${renderedIncludes} exclude :\n ${indent(rendered, 1 )}" 
558-     }
551+          s " \n exclude :\n ${indent(rendered, 1 )}" 
552+        }
559553
560-     val  renderedMatrices  = 
561-       if  (renderedExcludesPre.isEmpty)
562-         " " 
563-       else 
564-         " \n " +  indent(renderedExcludesPre, 2 )
554+     val  renderedMatrices  =  indent(
555+       buildMatrix(
556+         0 ,
557+         " os" ->  job.oses,
558+         " scala" ->  job.scalas,
559+         " java" ->  job.javas.map(_.render)) + 
560+         renderedMatricesAdds +  renderedIncludes +  renderedExcludes,
561+       2 )
565562
566563    val  declareShell  =  job.oses.exists(_.contains(" windows" 
567564
@@ -583,7 +580,7 @@ object GenerativePlugin extends AutoPlugin {
583580    val  body  =  s """ name:  ${wrap(job.name)}${renderedNeeds}${renderedCond}
584581      |strategy: ${renderedFailFast}
585582      |  matrix: 
586-       | ${buildMatrix( 2 ,  " os "   ->  job.oses,  " scala "   ->  job.scalas,  " java "   ->  job.javas.map(_.render))}${ renderedMatrices}
583+       | ${renderedMatrices}
587584      |runs-on:  ${runsOn}${renderedEnvironment}${renderedContainer}${renderedPerm}${renderedEnv}${renderedOutputs}${renderedConcurrency}${renderedTimeoutMinutes}
588585      |steps: 
589586      | ${renderedSteps}""" .stripMargin
0 commit comments