1
1
package it.krzeminski.githubactionstyping
2
2
3
3
import it.krzeminski.githubactionstyping.github.getBooleanInput
4
+ import it.krzeminski.githubactionstyping.parsing.parseManifest
4
5
import it.krzeminski.githubactionstyping.parsing.parseTypesManifest
5
- import it.krzeminski.githubactionstyping.parsing.readActionTypesManifest
6
+ import it.krzeminski.githubactionstyping.parsing.readYamlFile
6
7
import it.krzeminski.githubactionstyping.reporting.toPlaintextReport
7
8
import it.krzeminski.githubactionstyping.validation.ItemValidationResult
8
9
import it.krzeminski.githubactionstyping.validation.validate
9
10
import kotlin.system.exitProcess
10
11
11
12
fun main () {
12
- val manifest = readActionTypesManifest( ) ? : run {
13
+ val typesManifest = readYamlFile( " action-types " ) ? : run {
13
14
println (" No types manifest (action-types.yml or action-types.yaml) found!" )
14
15
exitProcess(1 )
15
16
throw IllegalStateException ()
16
17
}
17
- val parsedManifest = parseTypesManifest(manifest)
18
+ val parsedTypesManifest = parseTypesManifest(typesManifest)
19
+
20
+ val manifest = readYamlFile(" action" ) ? : run {
21
+ println (" No action manifest (action.yml or action.yaml) found!" )
22
+ exitProcess(1 )
23
+ throw IllegalStateException ()
24
+ }
25
+ val parsedManifest = parseManifest(manifest)
26
+
27
+ val inputsInTypesManifest = parsedTypesManifest.inputs.keys
28
+ val inputsInManifest = parsedManifest.inputs.keys
29
+
30
+ if (inputsInManifest != inputsInTypesManifest) {
31
+ throw IllegalStateException (" The same set of inputs should exist in action manifest and types manifest!" )
32
+ }
33
+
34
+ val outputsInTypesManifest = parsedTypesManifest.outputs.keys
35
+ val outputsInManifest = parsedManifest.outputs.keys
36
+
37
+ if (outputsInManifest != outputsInTypesManifest) {
38
+ throw IllegalStateException (" The same set of outputs should exist in action manifest and types manifest!" )
39
+ }
18
40
19
41
if (getBooleanInput(" verbose" )) {
20
42
println (" Action's manifest:" )
@@ -23,12 +45,18 @@ fun main() {
23
45
println (" Parsed manifest:" )
24
46
println (parsedManifest)
25
47
48
+ println (" Action's types manifest:" )
49
+ println (typesManifest)
50
+
51
+ println (" Parsed types manifest:" )
52
+ println (parsedTypesManifest)
53
+
26
54
println ()
27
55
println (" ==============================================" )
28
56
println ()
29
57
}
30
58
31
- val validationResult = parsedManifest .validate()
59
+ val validationResult = parsedTypesManifest .validate()
32
60
println (validationResult.toPlaintextReport())
33
61
34
62
if (validationResult.overallResult is ItemValidationResult .Invalid ) {
0 commit comments