@@ -7,17 +7,20 @@ import sys.io.File;
7
7
8
8
using StringTools ;
9
9
10
- enum abstract LibVersion (String ) from String {
10
+ enum abstract LibVersion (String ) from String
11
+ {
11
12
final Dev = " dev" ;
12
13
final Release = " release" ;
13
14
}
14
15
15
- enum abstract TestLocation (String ) from String {
16
+ enum abstract TestLocation (String ) from String
17
+ {
16
18
final Local = " local" ;
17
19
final Git = " git" ;
18
20
}
19
21
20
- enum abstract HaxeVersion (String ) from String to String {
22
+ enum abstract HaxeVersion (String ) from String to String
23
+ {
21
24
final Latest = " latest" ;
22
25
final Stable = " stable" ;
23
26
final Nightly = " nightly" ;
@@ -27,21 +30,24 @@ enum abstract HaxeVersion(String) from String to String {
27
30
28
31
private final HaxelibRepo = Path .join ([Sys .getEnv (" HOME" ), " haxe/haxelib" ]);
29
32
30
- function main () {
33
+ function main ()
34
+ {
31
35
final haxeVersion : HaxeVersion = Core .getInput (" haxe-version" );
32
36
final limeVersion : LibVersion = Core .getInput (" lime-version" );
33
37
final openflVersion : LibVersion = Core .getInput (" openfl-version" );
34
38
final flixelVersions : LibVersion = Core .getInput (" flixel-versions" );
35
39
final testLocation : TestLocation = Core .getInput (" test-location" );
36
40
final target : Target = Core .getInput (" target" );
37
41
final runTests : Bool = Core .getInput (" run-tests" ) == " true" ;
38
-
39
- if (runTests ) {
40
- if (target == Hl && haxeVersion .startsWith (" 3" )) {
42
+
43
+ if (runTests )
44
+ {
45
+ if (target == Hl && haxeVersion .startsWith (" 3" ))
46
+ {
41
47
return ; // OpenFL's HL target and Haxe 3 don't work together
42
48
}
43
49
}
44
-
50
+
45
51
Core .startGroup (" Installing Haxe Dependencies" );
46
52
final installationResult = runUntilFailure ([
47
53
setupLix .bind (haxeVersion ),
@@ -53,12 +59,13 @@ function main() {
53
59
installHaxelibs .bind (limeVersion , openflVersion , flixelVersions ),
54
60
installHxcpp .bind (target )
55
61
]);
56
- if (installationResult != Success ) {
62
+ if (installationResult != Success )
63
+ {
57
64
Sys .exit (Failure );
58
65
}
59
66
Core .exportVariable (" HAXELIB_REPO" , HaxelibRepo );
60
67
Core .endGroup ();
61
-
68
+
62
69
Core .startGroup (" Listing Dependencies" );
63
70
if (haxeVersion != Current )
64
71
run (" lix -v" );
@@ -69,40 +76,44 @@ function main() {
69
76
run (" haxelib fixrepo" );
70
77
run (" haxelib list" );
71
78
Core .endGroup ();
72
-
73
- if (runTests ) {
79
+
80
+ if (runTests )
81
+ {
74
82
Core .startGroup (" Test Preparation" );
75
-
83
+
76
84
if (testLocation == Local )
77
85
// When testing changes to flixel, flixel is set to the dev version
78
86
cd (" tests" );
79
87
else
80
88
// otherwise use git version
81
89
cd (Path .join ([HaxelibRepo , " flixel/git/tests" ]));
82
-
90
+
83
91
putEnv (" HXCPP_SILENT" , " 1" );
84
92
putEnv (" HXCPP_COMPILE_CACHE" , Sys .getEnv (" HOME" ) + " /hxcpp_cache" );
85
93
putEnv (" HXCPP_CACHE_MB" , " 5000" );
86
94
Core .endGroup ();
87
-
95
+
88
96
Sys .exit (runAllNamed (Tests .make (target )));
89
97
}
90
98
}
91
99
92
- private function setupLix (haxeVersion ): ExitCode {
100
+ private function setupLix (haxeVersion ): ExitCode
101
+ {
93
102
if (haxeVersion == Current )
94
103
return Success ;
95
-
104
+
96
105
Sys .command (" lix scope" );
97
106
final path = Path .join ([Sys .getEnv (" HOME" ), " haxe/.haxerc" ]);
98
- if (! FileSystem .exists (path )) {
107
+ if (! FileSystem .exists (path ))
108
+ {
99
109
return Failure ;
100
110
}
101
111
File .saveContent (path , ' {"version": "stable", "resolveLibs": "haxelib"}' );
102
112
return run (' lix install haxe $haxeVersion --global' );
103
113
}
104
114
105
- private function installHaxelibs (limeVersion : LibVersion , openflVersion : LibVersion , flixelVersions : LibVersion ): ExitCode {
115
+ private function installHaxelibs (limeVersion : LibVersion , openflVersion : LibVersion , flixelVersions : LibVersion ): ExitCode
116
+ {
106
117
final libs = [
107
118
// TODO: fix git version failing on nightly
108
119
// Haxelib.git.bind("massive-oss", "munit", "MassiveUnit", "master", "src"),
@@ -114,27 +125,36 @@ private function installHaxelibs(limeVersion:LibVersion, openflVersion:LibVersio
114
125
Haxelib .install .bind (" nape-haxe4" ),
115
126
Haxelib .install .bind (" haxeui-core" ),
116
127
Haxelib .install .bind (" haxeui-flixel" ),
117
- Haxelib . install . bind ( " format " ), // needed for git lime
128
+
118
129
Haxelib .git .bind (" HaxeFoundation" , " hscript" ),
119
130
Haxelib .git .bind (" larsiusprime" , " firetongue" ),
120
131
Haxelib .git .bind (" Geokureli" , " spinehaxe" , " spinehaxe" , " haxe4.3.1" ),
121
132
Haxelib .git .bind (" larsiusprime" , " steamwrap" ),
122
-
133
+
123
134
Haxelib .fromVersion .bind (" openfl" , " lime" , limeVersion ),
124
135
Haxelib .fromVersion .bind (" openfl" , " openfl" , openflVersion ),
125
-
136
+
126
137
Haxelib .fromVersion .bind (" HaxeFlixel" , " flixel" , flixelVersions ),
127
138
Haxelib .fromVersion .bind (" HaxeFlixel" , " flixel-tools" , flixelVersions ),
128
139
Haxelib .fromVersion .bind (" HaxeFlixel" , " flixel-templates" , flixelVersions ),
129
140
Haxelib .fromVersion .bind (" HaxeFlixel" , " flixel-demos" , flixelVersions ),
130
141
Haxelib .fromVersion .bind (" HaxeFlixel" , " flixel-addons" , flixelVersions ),
131
- Haxelib .fromVersion .bind (" HaxeFlixel" , " flixel-ui" , flixelVersions ),
142
+ Haxelib .fromVersion .bind (" HaxeFlixel" , " flixel-ui" , flixelVersions )
132
143
];
144
+
145
+ if (limeVersion == Dev )
146
+ {
147
+ // needed for git lime
148
+ libs .push (Haxelib .install .bind (" format" ));
149
+ libs .push (Haxelib .install .bind (" hxp" ));
150
+ }
133
151
return runUntilFailure (libs );
134
152
}
135
153
136
- private function installHxcpp (target : Target ): ExitCode {
137
- if (target != Cpp ) {
154
+ private function installHxcpp (target : Target ): ExitCode
155
+ {
156
+ if (target != Cpp )
157
+ {
138
158
return Success ;
139
159
}
140
160
final hxcppDir = Path .join ([HaxelibRepo , " hxcpp/git/" ]);
0 commit comments