logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: e59706c201bd71525c0a15008c3cb5dcdfb73289
parent 8250a9764ea07a69a701401fd00f6d55e0ef2003
Author: Mark Felder <feld@feld.me>
Date:   Mon, 16 Sep 2024 11:39:19 -0400

Reapply "Custom mix task to retry failed tests once in CI pipeline"

This reverts commit b281ad06de2de331450a5e319e3ba497071d4197.

Diffstat:

M.gitlab-ci.yml2+-
Dchangelog.d/fix-test-failures.skip0
Alib/mix/tasks/pleroma/test_runner.ex25+++++++++++++++++++++++++
3 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml @@ -134,7 +134,7 @@ unit-testing-1.13.4-otp-25: script: &testing_script - mix ecto.create - mix ecto.migrate - - mix test --cover --preload-modules + - mix pleroma.test_runner --cover --preload-modules coverage: '/^Line total: ([^ ]*%)$/' artifacts: reports: diff --git a/changelog.d/fix-test-failures.skip b/changelog.d/fix-test-failures.skip diff --git a/lib/mix/tasks/pleroma/test_runner.ex 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