@@ -80,7 +80,7 @@ async function validate(args: string[]) {
80
80
for ( const level of skeleton . levels ) {
81
81
if ( level . setup ) {
82
82
// load commits
83
- if ( level . setup . commits ) {
83
+ if ( commits [ ` ${ level . id } ` ] ) {
84
84
console . log ( `Loading${ level . id } commits...` ) ;
85
85
await cherryPick ( commits [ level . id ] ) ;
86
86
}
@@ -93,21 +93,36 @@ async function validate(args: string[]) {
93
93
// steps
94
94
if ( level . steps ) {
95
95
for ( const step of level . steps ) {
96
- console . log ( step ) ;
97
96
// load commits
98
- if ( step . setup . commits ) {
99
- console . log ( `Loading${ step . id } commits...` ) ;
100
- await cherryPick ( commits [ step . id ] ) ;
97
+ const stepSetupCommits = commits [ `${ step . id } Q` ] ;
98
+ if ( stepSetupCommits ) {
99
+ console . info ( `Loading${ step . id } setup commits...` ) ;
100
+ await cherryPick ( stepSetupCommits ) ;
101
101
}
102
102
// run commands
103
103
if ( step . setup . commands ) {
104
- console . log ( `Running${ step . id } commands...` ) ;
104
+ console . info ( `Running${ step . id } setup commands...` ) ;
105
105
await runCommands ( step . setup . commands ) ;
106
106
}
107
107
108
- // run test
109
- console . info ( "Running test" ) ;
110
- await runTest ( ) ;
108
+ // ignore runnning tests on steps with no solution
109
+ if ( step . solution ) {
110
+ // run test
111
+ console . info ( "Running test" ) ;
112
+ // await runTest();
113
+ }
114
+
115
+ const stepSolutionCommits = commits [ `${ step . id } A` ] ;
116
+ if ( stepSolutionCommits ) {
117
+ console . info ( `Loading${ step . id } solution commits...` ) ;
118
+ await cherryPick ( stepSolutionCommits ) ;
119
+ }
120
+
121
+ // run commands
122
+ if ( step ?. solution ?. commands ) {
123
+ console . info ( `Running${ step . id } solution commands...` ) ;
124
+ await runCommands ( step . solution . commands ) ;
125
+ }
111
126
}
112
127
}
113
128
}