From 93505de467dee7a2623dd10529dc22786cd3928f Mon Sep 17 00:00:00 2001 From: Tobias Pfeiffer Date: Thu, 31 Aug 2017 13:07:02 +0200 Subject: [PATCH] Do not fail when coveralls fails to upload * Basically all the builds have been red :'( --- .travis.yml | 2 +- mix.exs | 4 ++-- mix/tasks.ex | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 mix/tasks.ex diff --git a/.travis.yml b/.travis.yml index a4dc2d24..0b3cb4ff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ script: - mix credo --strict - # skip dialyzer for elixir 1.4 and erlang 18 as it produces weird errors, see #69 - if ! ([[ "$TRAVIS_ELIXIR_VERSION" == "1.4"* ]] && [[ "$TRAVIS_OTP_RELEASE" == "18"* ]]); then mix dialyzer --halt-exit-status; fi - - mix coveralls.travis + - mix safe_coveralls.travis after_script: - mix deps.get --only docs - MIX_ENV=docs mix inch.report diff --git a/mix.exs b/mix.exs index 0e893180..5c0aa953 100644 --- a/mix.exs +++ b/mix.exs @@ -19,7 +19,7 @@ defmodule Benchee.Mixfile do preferred_cli_env: [ "coveralls": :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test, - "coveralls.travis": :test], + "coveralls.travis": :test, "safe_coveralls.travis": :test], dialyzer: [ flags: [:unmatched_returns, :error_handling, :race_conditions, :underspecs] @@ -33,7 +33,7 @@ defmodule Benchee.Mixfile do ] end - defp elixirc_paths(:test), do: ["lib", "test/support"] + defp elixirc_paths(:test), do: ["lib", "test/support", "mix"] defp elixirc_paths(_), do: ["lib"] def application do diff --git a/mix/tasks.ex b/mix/tasks.ex new file mode 100644 index 00000000..948db687 --- /dev/null +++ b/mix/tasks.ex @@ -0,0 +1,18 @@ +defmodule Mix.Tasks.SafeCoveralls.Travis do + @moduledoc """ + Provides an entry point for travis's script that's safe from upload + errors. + """ + use Mix.Task + + @preferred_cli_env :test + @shortdoc "A safe variant that doesn't crash on failed upload." + + def run(args) do + try do + Mix.Tasks.Coveralls.do_run(args, [type: "travis"]) + rescue + ExCoveralls.ReportUploadError -> IO.puts "Upload to coveralls failed." + end + end +end