RunCi.hx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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 Java:
  59. runci.targets.Java.run(args);
  60. case Jvm:
  61. runci.targets.Jvm.run(args);
  62. case Cs:
  63. runci.targets.Cs.run(args);
  64. case Flash:
  65. runci.targets.Flash.run(args);
  66. case Hl:
  67. runci.targets.Hl.run(args);
  68. case t:
  69. throw new Exception("unknown target: " + t);
  70. }
  71. } catch(f:CommandFailure) {
  72. failMsg('test ${test} failed');
  73. Sys.exit(f.exitCode);
  74. }
  75. successMsg('test ${test} succeeded');
  76. }
  77. deploy();
  78. }
  79. }