RunCi.hx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import runci.TestTarget;
  2. import runci.System;
  3. import runci.System.*;
  4. import runci.Config.*;
  5. import runci.Deployment.*;
  6. using StringTools;
  7. /**
  8. Will be run by CI services, currently TravisCI and AppVeyor.
  9. TravisCI:
  10. Setting file: ".travis.yml".
  11. Build result: https://travis-ci.org/HaxeFoundation/haxe
  12. AppVeyor:
  13. Setting file: "appveyor.yml".
  14. Build result: https://ci.appveyor.com/project/HaxeFoundation/haxe
  15. */
  16. class RunCi {
  17. static function main():Void {
  18. Sys.putEnv("OCAMLRUNPARAM", "b");
  19. var args = Sys.args();
  20. var tests:Array<TestTarget> = switch (args.length==1 ? args[0] : Sys.getEnv("TEST")) {
  21. case null:
  22. [Macro];
  23. case env:
  24. [for (v in env.split(",")) v.trim().toLowerCase()];
  25. }
  26. infoMsg('Going to test: $tests');
  27. for (test in tests) {
  28. switch (ci) {
  29. case TravisCI:
  30. Sys.println('travis_fold:start:test-${test}');
  31. case _:
  32. //pass
  33. }
  34. infoMsg('test $test');
  35. var success = true;
  36. try {
  37. changeDirectory(unitDir);
  38. haxelibInstallGit("haxe-utest", "utest", "master");
  39. var args = switch (ci) {
  40. case TravisCI:
  41. ["-D","travis"];
  42. case AppVeyor:
  43. ["-D","appveyor"];
  44. case _:
  45. [];
  46. }
  47. switch (test) {
  48. case Macro:
  49. runci.targets.Macro.run(args);
  50. case Neko:
  51. runci.targets.Neko.run(args);
  52. case Php:
  53. runci.targets.Php.run(args);
  54. case Python:
  55. runci.targets.Python.run(args);
  56. case Lua:
  57. runci.targets.Lua.run(args);
  58. case Cpp:
  59. runci.targets.Cpp.run(args, true, true);
  60. case Cppia:
  61. runci.targets.Cpp.run(args, false, true);
  62. case Js:
  63. runci.targets.Js.run(args);
  64. case Java:
  65. runci.targets.Java.run(args);
  66. case Jvm:
  67. runci.targets.Jvm.run(args);
  68. case Cs:
  69. runci.targets.Cs.run(args);
  70. case Flash9:
  71. runci.targets.Flash.run(args);
  72. case As3:
  73. runci.targets.As3.run(args);
  74. case Hl:
  75. runci.targets.Hl.run(args);
  76. case t:
  77. throw "unknown target: " + t;
  78. }
  79. } catch(f:Failure) {
  80. success = false;
  81. }
  82. switch (ci) {
  83. case TravisCI:
  84. Sys.println('travis_fold:end:test-${test}');
  85. case _:
  86. //pass
  87. }
  88. if (success) {
  89. successMsg('test ${test} succeeded');
  90. } else {
  91. failMsg('test ${test} failed');
  92. }
  93. }
  94. if (success) {
  95. deploy();
  96. } else {
  97. Sys.exit(1);
  98. }
  99. }
  100. }