RunCi.hx 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import haxe.Exception;
  2. import runci.TestTarget;
  3. import runci.System;
  4. import runci.System.*;
  5. import runci.Config.*;
  6. import runci.Deployment.*;
  7. using StringTools;
  8. class RunCi {
  9. static function main():Void {
  10. Sys.putEnv("OCAMLRUNPARAM", "b");
  11. var args = Sys.args();
  12. var tests:Array<TestTarget> = switch (args.length==1 ? args[0] : Sys.getEnv("TEST")) {
  13. case null:
  14. [Macro];
  15. case env:
  16. [for (v in env.split(",")) v.trim().toLowerCase()];
  17. }
  18. infoMsg('Going to test: $tests');
  19. final downloadPath = getDownloadPath();
  20. if (!sys.FileSystem.exists(downloadPath))
  21. sys.FileSystem.createDirectory(downloadPath);
  22. for (test in tests) {
  23. switch (systemName) {
  24. case "Windows":
  25. // change codepage to UTF-8
  26. runCommand("chcp", ["65001"]);
  27. case _:
  28. //pass
  29. }
  30. infoMsg('test $test');
  31. try {
  32. changeDirectory(unitDir);
  33. haxelibInstallGit("haxe-utest", "utest", "424a7182a93057730fada54b9d27d90b3cb7065c", "--always");
  34. var args = switch (ci) {
  35. case null:
  36. [];
  37. case GithubActions:
  38. ["-D","github"];
  39. }
  40. args = args.concat(["-D", systemName]);
  41. switch (test) {
  42. case Macro:
  43. runci.targets.Macro.run(args);
  44. case Neko:
  45. runci.targets.Neko.run(args);
  46. case Php:
  47. runci.targets.Php.run(args);
  48. case Python:
  49. runci.targets.Python.run(args);
  50. case Lua:
  51. runci.targets.Lua.run(args);
  52. case Cpp:
  53. runci.targets.Cpp.run(args, true, true);
  54. case Cppia:
  55. runci.targets.Cpp.run(args, false, true);
  56. case Js:
  57. runci.targets.Js.run(args);
  58. case Jvm:
  59. runci.targets.Jvm.run(args);
  60. case Flash:
  61. runci.targets.Flash.run(args);
  62. case Hl:
  63. runci.targets.Hl.run(args);
  64. case t:
  65. throw new Exception("unknown target: " + t);
  66. }
  67. } catch(f:CommandFailure) {
  68. failMsg('test ${test} failed');
  69. Sys.exit(f.exitCode);
  70. }
  71. successMsg('test ${test} succeeded');
  72. }
  73. deploy();
  74. }
  75. }