From 97d13c39b722d402918e98a94deae1a09f6ca0c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Thallis?= Date: Thu, 9 Nov 2023 06:26:29 -0300 Subject: [PATCH] chore: run propagator dialyzer on CI (#202) * chore: run propagator dialyzer on CI * Format using Elixir 1.15.6 * Support only Elixir ~> 1.12 It is necessary because :dialyxir requires Elixir ">= 1.12.0" --------- Co-authored-by: Tristan Sloughter --- .github/elixir-test-matrix.json | 11 +-------- .github/workflows/elixir.yml | 23 +++++++++++++++++++ .../.gitignore | 2 ++ .../opentelemetry_process_propagator/mix.exs | 5 ++-- .../opentelemetry_process_propagator/mix.lock | 2 +- 5 files changed, 30 insertions(+), 13 deletions(-) diff --git a/.github/elixir-test-matrix.json b/.github/elixir-test-matrix.json index 50d3025..b47d542 100644 --- a/.github/elixir-test-matrix.json +++ b/.github/elixir-test-matrix.json @@ -9,8 +9,7 @@ "1.15.4", "1.14.4", "1.13.4", - "1.12.3", - "1.11.4" + "1.12.3" ], "rebar3_version": [ "3.20.0" @@ -45,14 +44,6 @@ { "elixir_version": "1.12.3", "otp_version": "26.0.2" - }, - { - "elixir_version": "1.11.4", - "otp_version": "25.3.2.5" - }, - { - "elixir_version": "1.11.4", - "otp_version": "26.0.2" } ] } diff --git a/.github/workflows/elixir.yml b/.github/workflows/elixir.yml index 35932d3..23d67a0 100644 --- a/.github/workflows/elixir.yml +++ b/.github/workflows/elixir.yml @@ -487,6 +487,29 @@ jobs: if: matrix.check_formatted - name: Test run: mix test + - name: Restore PLT cache + id: plt_cache + uses: actions/cache/restore@v3 + with: + key: | + plt-${{ runner.os }}-${{ matrix.otp-version }}-${{ matrix.elixir-version }}-${{ hashFiles('**/mix.lock') }} + restore_keys: | + plt-${{ runner.os }}-${{ matrix.otp-version }}-${{ matrix.elixir-version }}- + path: | + priv/plts + - name: Create PLTs + if: steps.plt_cache.outputs.cache-hit != 'true' + run: mix dialyzer --plt + - name: Save PLT cache + id: plt_cache_save + uses: actions/cache/save@v3 + with: + key: | + plt-${{ runner.os }}-${{ matrix.otp-version }}-${{ matrix.elixir-version }}-${{ hashFiles('**/mix.lock') }} + path: | + priv/plts + - name: Run dialyzer + run: mix dialyzer --format github opentelemetry-tesla: needs: [test-matrix] diff --git a/propagators/opentelemetry_process_propagator/.gitignore b/propagators/opentelemetry_process_propagator/.gitignore index 0b24e2b..7247319 100644 --- a/propagators/opentelemetry_process_propagator/.gitignore +++ b/propagators/opentelemetry_process_propagator/.gitignore @@ -19,3 +19,5 @@ rebar3.crashdump *~ doc edoc +/priv/plts/opentelemetry_process_propagator.plt +/priv/plts/opentelemetry_process_propagator.plt.hash diff --git a/propagators/opentelemetry_process_propagator/mix.exs b/propagators/opentelemetry_process_propagator/mix.exs index 97ea0a1..2eb9d32 100644 --- a/propagators/opentelemetry_process_propagator/mix.exs +++ b/propagators/opentelemetry_process_propagator/mix.exs @@ -9,7 +9,7 @@ defmodule OpentelemetryProcessPropagator.MixProject do app: app, version: to_string(Keyword.fetch!(desc, :vsn)), description: to_string(Keyword.fetch!(desc, :description)), - elixir: "~> 1.11", + elixir: "~> 1.12", start_permanent: Mix.env() == :prod, deps: deps(Keyword.fetch!(config, :deps)), name: "Opentelemetry Process Propagator", @@ -26,6 +26,7 @@ defmodule OpentelemetryProcessPropagator.MixProject do # when build docs first build edocs with rebar3 docs: ["cmd rebar3 edoc", "docs"] ], + plt_file: {:no_warn, "priv/plts/opentelemetry_process_propagator.plt"}, package: package() ] end @@ -44,7 +45,7 @@ defmodule OpentelemetryProcessPropagator.MixProject do dep when is_atom(dep) -> {dep, ">= 0.0.0"} end) |> Enum.concat([ - {:dialyxir, "~> 1.1", only: [:dev, :test], runtime: false}, + {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.29", only: :dev, runtime: false}, {:opentelemetry, "~> 1.0", only: [:dev, :test]}, {:opentelemetry_exporter, "~> 1.0", only: [:dev, :test]} diff --git a/propagators/opentelemetry_process_propagator/mix.lock b/propagators/opentelemetry_process_propagator/mix.lock index cb433f3..60e4e38 100644 --- a/propagators/opentelemetry_process_propagator/mix.lock +++ b/propagators/opentelemetry_process_propagator/mix.lock @@ -2,7 +2,7 @@ "acceptor_pool": {:hex, :acceptor_pool, "1.0.0", "43c20d2acae35f0c2bcd64f9d2bde267e459f0f3fd23dab26485bf518c281b21", [:rebar3], [], "hexpm", "0cbcd83fdc8b9ad2eee2067ef8b91a14858a5883cb7cd800e6fcd5803e158788"}, "chatterbox": {:hex, :ts_chatterbox, "0.13.0", "6f059d97bcaa758b8ea6fffe2b3b81362bd06b639d3ea2bb088335511d691ebf", [:rebar3], [{:hpack, "~>0.2.3", [hex: :hpack_erl, repo: "hexpm", optional: false]}], "hexpm", "b93d19104d86af0b3f2566c4cba2a57d2e06d103728246ba1ac6c3c0ff010aa7"}, "ctx": {:hex, :ctx, "0.6.0", "8ff88b70e6400c4df90142e7f130625b82086077a45364a78d208ed3ed53c7fe", [:rebar3], [], "hexpm", "a14ed2d1b67723dbebbe423b28d7615eb0bdcba6ff28f2d1f1b0a7e1d4aa5fc2"}, - "dialyxir": {:hex, :dialyxir, "1.2.0", "58344b3e87c2e7095304c81a9ae65cb68b613e28340690dfe1a5597fd08dec37", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "61072136427a851674cab81762be4dbeae7679f85b1272b6d25c3a839aff8463"}, + "dialyxir": {:hex, :dialyxir, "1.4.1", "a22ed1e7bd3a3e3f197b68d806ef66acb61ee8f57b3ac85fc5d57354c5482a93", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "84b795d6d7796297cca5a3118444b80c7d94f7ce247d49886e7c291e1ae49801"}, "earmark_parser": {:hex, :earmark_parser, "1.4.29", "149d50dcb3a93d9f3d6f3ecf18c918fb5a2d3c001b5d3305c926cddfbd33355b", [:mix], [], "hexpm", "4902af1b3eb139016aed210888748db8070b8125c2342ce3dcae4f38dcc63503"}, "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, "ex_doc": {:hex, :ex_doc, "0.29.0", "4a1cb903ce746aceef9c1f9ae8a6c12b742a5461e6959b9d3b24d813ffbea146", [:mix], [{:earmark_parser, "~> 1.4.19", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "f096adb8bbca677d35d278223361c7792d496b3fc0d0224c9d4bc2f651af5db1"},