diff options
| author | Mark Felder <feld@feld.me> | 2024-09-16 11:39:19 -0400 | 
|---|---|---|
| committer | Mark Felder <feld@feld.me> | 2024-09-16 11:42:55 -0400 | 
| commit | e59706c201bd71525c0a15008c3cb5dcdfb73289 (patch) | |
| tree | 06304e78fffeaca7d964ca65e8ab8b9ef380ecd4 /lib | |
| parent | 8250a9764ea07a69a701401fd00f6d55e0ef2003 (diff) | |
| download | pleroma-e59706c201bd71525c0a15008c3cb5dcdfb73289.tar.gz pleroma-e59706c201bd71525c0a15008c3cb5dcdfb73289.zip  | |
Reapply "Custom mix task to retry failed tests once in CI pipeline"
This reverts commit b281ad06de2de331450a5e319e3ba497071d4197.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/mix/tasks/pleroma/test_runner.ex | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/mix/tasks/pleroma/test_runner.ex b/lib/mix/tasks/pleroma/test_runner.ex new file mode 100644 index 000000000..69fefb001 --- /dev/null +++ b/lib/mix/tasks/pleroma/test_runner.ex @@ -0,0 +1,25 @@ +defmodule Mix.Tasks.Pleroma.TestRunner do +  @shortdoc "Retries tests once if they fail" + +  use Mix.Task + +  def run(args \\ []) do +    case System.cmd("mix", ["test"] ++ args, into: IO.stream(:stdio, :line)) do +      {_, 0} -> +        :ok + +      _ -> +        retry(args) +    end +  end + +  def retry(args) do +    case System.cmd("mix", ["test", "--failed"] ++ args, into: IO.stream(:stdio, :line)) do +      {_, 0} -> +        :ok + +      _ -> +        exit(1) +    end +  end +end  | 
