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 <t@crashfast.com>
This commit is contained in:
João Thallis 2023-11-09 06:26:29 -03:00 committed by GitHub
parent 5be23037ce
commit 97d13c39b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 13 deletions

View File

@ -9,8 +9,7 @@
"1.15.4", "1.15.4",
"1.14.4", "1.14.4",
"1.13.4", "1.13.4",
"1.12.3", "1.12.3"
"1.11.4"
], ],
"rebar3_version": [ "rebar3_version": [
"3.20.0" "3.20.0"
@ -45,14 +44,6 @@
{ {
"elixir_version": "1.12.3", "elixir_version": "1.12.3",
"otp_version": "26.0.2" "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"
} }
] ]
} }

View File

@ -487,6 +487,29 @@ jobs:
if: matrix.check_formatted if: matrix.check_formatted
- name: Test - name: Test
run: mix 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: opentelemetry-tesla:
needs: [test-matrix] needs: [test-matrix]

View File

@ -19,3 +19,5 @@ rebar3.crashdump
*~ *~
doc doc
edoc edoc
/priv/plts/opentelemetry_process_propagator.plt
/priv/plts/opentelemetry_process_propagator.plt.hash

View File

@ -9,7 +9,7 @@ defmodule OpentelemetryProcessPropagator.MixProject do
app: app, app: app,
version: to_string(Keyword.fetch!(desc, :vsn)), version: to_string(Keyword.fetch!(desc, :vsn)),
description: to_string(Keyword.fetch!(desc, :description)), description: to_string(Keyword.fetch!(desc, :description)),
elixir: "~> 1.11", elixir: "~> 1.12",
start_permanent: Mix.env() == :prod, start_permanent: Mix.env() == :prod,
deps: deps(Keyword.fetch!(config, :deps)), deps: deps(Keyword.fetch!(config, :deps)),
name: "Opentelemetry Process Propagator", name: "Opentelemetry Process Propagator",
@ -26,6 +26,7 @@ defmodule OpentelemetryProcessPropagator.MixProject do
# when build docs first build edocs with rebar3 # when build docs first build edocs with rebar3
docs: ["cmd rebar3 edoc", "docs"] docs: ["cmd rebar3 edoc", "docs"]
], ],
plt_file: {:no_warn, "priv/plts/opentelemetry_process_propagator.plt"},
package: package() package: package()
] ]
end end
@ -44,7 +45,7 @@ defmodule OpentelemetryProcessPropagator.MixProject do
dep when is_atom(dep) -> {dep, ">= 0.0.0"} dep when is_atom(dep) -> {dep, ">= 0.0.0"}
end) end)
|> Enum.concat([ |> 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}, {:ex_doc, "~> 0.29", only: :dev, runtime: false},
{:opentelemetry, "~> 1.0", only: [:dev, :test]}, {:opentelemetry, "~> 1.0", only: [:dev, :test]},
{:opentelemetry_exporter, "~> 1.0", only: [:dev, :test]} {:opentelemetry_exporter, "~> 1.0", only: [:dev, :test]}

View File

@ -2,7 +2,7 @@
"acceptor_pool": {:hex, :acceptor_pool, "1.0.0", "43c20d2acae35f0c2bcd64f9d2bde267e459f0f3fd23dab26485bf518c281b21", [:rebar3], [], "hexpm", "0cbcd83fdc8b9ad2eee2067ef8b91a14858a5883cb7cd800e6fcd5803e158788"}, "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"}, "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"}, "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"}, "earmark_parser": {:hex, :earmark_parser, "1.4.29", "149d50dcb3a93d9f3d6f3ecf18c918fb5a2d3c001b5d3305c926cddfbd33355b", [:mix], [], "hexpm", "4902af1b3eb139016aed210888748db8070b8125c2342ce3dcae4f38dcc63503"},
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, "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"}, "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"},