From f1ce781ddaff4d373fb35ffeb7d7cbe76c1060d4 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Fri, 23 Apr 2021 17:26:37 +0200 Subject: [PATCH] Add dialyzer for real --- .github/workflows/elixir_test.yml | 19 +++++++++++++++++++ .gitignore | 3 +++ mix.exs | 9 +++++++-- mix.lock | 2 ++ priv/plts/.keep | 0 5 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 priv/plts/.keep diff --git a/.github/workflows/elixir_test.yml b/.github/workflows/elixir_test.yml index a1ea3a6a..d58f6556 100644 --- a/.github/workflows/elixir_test.yml +++ b/.github/workflows/elixir_test.yml @@ -16,7 +16,26 @@ jobs: mix local.rebar --force mix local.hex --force mix deps.get + - name: Run Tests run: mix test --exclude external + - name: Run Credo run: mix credo + + - name: Retrieve PLT Cache + + uses: actions/cache@v2.1.5 + id: plt-cache + with: + path: priv/plts + key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-plts-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}-v3 + + - name: Create PLTs + if: steps.plt-cache.outputs.cache-hit != 'true' + run: | + mkdir -p priv/plts + mix dialyzer --plt + + - name: Run dialyzer + run: mix dialyzer diff --git a/.gitignore b/.gitignore index 5fbf2186..e9fad5c6 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,6 @@ test_results.json analysis.json tmp/ + +/priv/plts/*.plt +/priv/plts/*.plt.hash diff --git a/mix.exs b/mix.exs index c9c04741..97223651 100644 --- a/mix.exs +++ b/mix.exs @@ -9,7 +9,11 @@ defmodule ElixirAnalyzer.MixProject do elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, deps: deps(), - escript: escript() + escript: escript(), + dialyzer: [ + plt_core_path: "priv/plts", + plt_file: {:no_warn, "priv/plts/eventstore.plt"} + ] ] end @@ -24,7 +28,8 @@ defmodule ElixirAnalyzer.MixProject do defp deps do [ {:jason, "~> 1.2"}, - {:credo, "~> 1.5", only: [:dev, :test], runtime: false} + {:credo, "~> 1.5", only: [:dev, :test], runtime: false}, + {:dialyxir, "~> 1.0", only: [:dev], runtime: false} ] end diff --git a/mix.lock b/mix.lock index 3257081e..59a38df7 100644 --- a/mix.lock +++ b/mix.lock @@ -2,5 +2,7 @@ "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm", "7af5c7e09fe1d40f76c8e4f9dd2be7cebd83909f31fee7cd0e9eadc567da8353"}, "credo": {:hex, :credo, "1.5.5", "e8f422026f553bc3bebb81c8e8bf1932f498ca03339856c7fec63d3faac8424b", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "dd8623ab7091956a855dc9f3062486add9c52d310dfd62748779c4315d8247de"}, "file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"}, + "dialyxir": {:hex, :dialyxir, "1.1.0", "c5aab0d6e71e5522e77beff7ba9e08f8e02bad90dfbeffae60eaf0cb47e29488", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "07ea8e49c45f15264ebe6d5b93799d4dd56a44036cf42d0ad9c960bc266c0b9a"}, + "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, "jason": {:hex, :jason, "1.2.2", "ba43e3f2709fd1aa1dce90aaabfd039d000469c05c56f0b8e31978e03fa39052", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "18a228f5f0058ee183f29f9eae0805c6e59d61c3b006760668d8d18ff0d12179"}, } diff --git a/priv/plts/.keep b/priv/plts/.keep new file mode 100644 index 00000000..e69de29b