Custom mix task to retry failed tests once in CI pipeline

This will be temporary* as we hunt down the cause of the random test failures

* gonna regret this
This commit is contained in:
Mark Felder 2024-06-19 19:04:09 -04:00
commit ed2976b237
2 changed files with 27 additions and 2 deletions

View file

@ -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