Skip to content

Commit

Permalink
add common LibVersion type
Browse files Browse the repository at this point in the history
  • Loading branch information
Geokureli committed Mar 7, 2024
1 parent abe1a67 commit dc56544
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 145 deletions.
3 changes: 3 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ inputs:
lime-version:
description: 'Version of Lime to use'
required: false
openfl-version:
description: 'Version of Openfl to use'
required: false
flixel-versions:
description: 'Version of Flixel libs to use'
required: true
Expand Down
186 changes: 80 additions & 106 deletions build/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions src/Haxelib.hx
Original file line number Diff line number Diff line change
@@ -1,9 +1,21 @@
import Command.ExitCode;
import Main.LibVersion;

function run(args:Array<String>):ExitCode {
return Command.run("haxelib", ["run"].concat(args));
}

function fromVersion(defaultUser:String, lib:String, version:LibVersion):ExitCode {
return switch (version) {
case Dev:
Haxelib.git(defaultUser, lib);
case Release:
Haxelib.install(lib);
case version:
Haxelib.install(lib, cast version);
}
}

function install(lib:String, ?version:String):ExitCode {
final args = ["install", lib];
if (version != null) {
Expand Down
57 changes: 18 additions & 39 deletions src/Main.hx
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,7 @@ import sys.io.File;

using StringTools;

enum abstract FlixelVersions(String) from String {
final Dev = "dev";
final Release = "release";
}

enum abstract LimeVersion(String) from String {
enum abstract LibVersion(String) from String {
final Dev = "dev";
final Release = "release";
}
Expand All @@ -34,8 +29,9 @@ private final HaxelibRepo = Path.join([Sys.getEnv("HOME"), "haxe/haxelib"]);

function main() {
final haxeVersion:HaxeVersion = Core.getInput("haxe-version");
final limeVersion:LimeVersion = Core.getInput("lime-version");
final flixelVersions:FlixelVersions = Core.getInput("flixel-versions");
final limeVersion:LibVersion = Core.getInput("lime-version");
final openflVersion:LibVersion = Core.getInput("openfl-version");
final flixelVersions:LibVersion = Core.getInput("flixel-versions");
final testLocation:TestLocation = Core.getInput("test-location");
final target:Target = Core.getInput("target");
final runTests:Bool = Core.getInput("run-tests") == "true";
Expand All @@ -54,7 +50,7 @@ function main() {
run.bind("sudo apt-get upgrade"), // for nekotools
run.bind("sudo apt-get install neko -y"), // for nekotools
// run.bind("haxelib install haxelib 4.0.3"), // 4.1.0 is failing on unit tests
installHaxelibs.bind(openFlVersion, flixelVersions),
installHaxelibs.bind(limeVersion, openflVersion, flixelVersions),
installHxcpp.bind(target)
]);
if (installationResult != Success) {
Expand Down Expand Up @@ -106,13 +102,12 @@ private function setupLix(haxeVersion):ExitCode {
return run('lix install haxe $haxeVersion --global');
}

private function installHaxelibs(limeVersion:LimeVersion, flixelVersions:FlixelVersions):ExitCode {
// @formatter:off
var libs = [
private function installHaxelibs(limeVersion:LibVersion, openflVersion:LibVersion, flixelVersions:LibVersion):ExitCode {
final libs = [
// TODO: fix git version failing on nightly
// Haxelib.git.bind("massive-oss", "munit", "MassiveUnit", "master", "src"),
Haxelib.git.bind("GeoKureli", "munit", "MassiveUnit", "haxe4-3", "src"),
Haxelib.git.bind("GeoKureli", "hamcrest", "hamcrest-haxe", "master", "src"),
Haxelib.git.bind("GeoKureli", "hamcrest", "hamcrest-haxe", "master", "src"),
Haxelib.install.bind("systools"),
Haxelib.install.bind("task"),
Haxelib.install.bind("poly2trihx"),
Expand All @@ -123,33 +118,17 @@ private function installHaxelibs(limeVersion:LimeVersion, flixelVersions:FlixelV
Haxelib.git.bind("larsiusprime", "firetongue"),
Haxelib.git.bind("Geokureli", "spinehaxe", "spinehaxe", "haxe4.3.1"),
Haxelib.git.bind("larsiusprime", "steamwrap"),

(limeVersion == Dev
? Haxelib.git.bind("openfl", "lime")
: Haxelib.install.bind("lime")
),
Haxelib.install.bind("openfl"),

Haxelib.fromVersion.bind("openfl", "lime", limeVersion),
Haxelib.fromVersion.bind("openfl", "openfl", openflVersion),

Haxelib.fromVersion.bind("HaxeFlixel", "flixel", flixelVersions),
Haxelib.fromVersion.bind("HaxeFlixel", "flixel-tools", flixelVersions),
Haxelib.fromVersion.bind("HaxeFlixel", "flixel-templates", flixelVersions),
Haxelib.fromVersion.bind("HaxeFlixel", "flixel-demos", flixelVersions),
Haxelib.fromVersion.bind("HaxeFlixel", "flixel-addons", flixelVersions),
Haxelib.fromVersion.bind("HaxeFlixel", "flixel-ui", flixelVersions),
];
// @formatter:on
libs = libs.concat(if (flixelVersions == Dev) {
[
Haxelib.git.bind("HaxeFlixel", "flixel"),
Haxelib.git.bind("HaxeFlixel", "flixel-tools"),
Haxelib.git.bind("HaxeFlixel", "flixel-templates"),
Haxelib.git.bind("HaxeFlixel", "flixel-demos"),
Haxelib.git.bind("HaxeFlixel", "flixel-addons"),
Haxelib.git.bind("HaxeFlixel", "flixel-ui"),
];
} else {
[
Haxelib.install.bind("flixel"),
Haxelib.install.bind("flixel-tools"),
Haxelib.install.bind("flixel-templates"),
Haxelib.install.bind("flixel-demos"),
Haxelib.install.bind("flixel-addons"),
Haxelib.install.bind("flixel-ui")
];
});
return runUntilFailure(libs);
}

Expand Down

0 comments on commit dc56544

Please sign in to comment.