From 3b834e2cc0333eed24d63ea37ff2989642cc586d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 21:39:07 -0300 Subject: [PATCH 01/13] Update euneus --- mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.lock b/mix.lock index 9811e94..c67f94c 100644 --- a/mix.lock +++ b/mix.lock @@ -7,7 +7,7 @@ "dialyxir": {:hex, :dialyxir, "1.4.3", "edd0124f358f0b9e95bfe53a9fcf806d615d8f838e2202a9f430d59566b6b53b", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"}, "earmark_parser": {:hex, :earmark_parser, "1.4.41", "ab34711c9dc6212dda44fcd20ecb87ac3f3fce6f0ca2f28d4a00e4154f8cd599", [:mix], [], "hexpm", "a81a04c7e34b6617c2792e291b5a2e57ab316365c2644ddc553bb9ed863ebefa"}, "erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"}, - "euneus": {:git, "https://github.com/williamthome/euneus", "0933a9c6ab20f4773a2f794c0f915a659fcb7027", [branch: "main"]}, + "euneus": {:git, "https://github.com/williamthome/euneus", "e089bb9e9d64dbab098d64c277b051da17d2b04b", [branch: "main"]}, "ex_doc": {:hex, :ex_doc, "0.34.2", "13eedf3844ccdce25cfd837b99bea9ad92c4e511233199440488d217c92571e8", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "5ce5f16b41208a50106afed3de6a2ed34f4acfd65715b82a0b84b49d995f95c1"}, "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, "jiffy": {:hex, :jiffy, "1.1.2", "a9b6c9a7ec268e7cf493d028f0a4c9144f59ccb878b1afe42841597800840a1b", [:rebar3], [], "hexpm", "bb61bc42a720bbd33cb09a410e48bb79a61012c74cb8b3e75f26d988485cf381"}, From 1c982eda2b820a9c88adb8b92321d2fe347112dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 21:31:25 -0300 Subject: [PATCH 02/13] Add more OTP and Elixir versions to CI --- .github/workflows/ci.yml | 18 ++++++++++++++---- mix.exs | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 700bddc..e75554c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,13 +28,23 @@ jobs: ci: name: CI OTP-${{matrix.otp-version}} / Elixir ${{matrix.elixir-version}} - runs-on: ${{matrix.os}} + runs-on: ubuntu-24.04 strategy: matrix: - otp-version: [27] - elixir-version: ['1.17.2'] - os: [ubuntu-24.04] + include: + - otp-version: "24.3" + elixir-version: "1.12" + - otp-version: "24.3" + elixir-version: "1.13" + - otp-version: "25.3" + elixir-version: "1.14" + - otp-version: "26.2" + elixir-version: "1.15" + - otp-version: "26.2" + elixir-version: "1.16" + - otp-version: "27.0" + elixir-version: "1.17" steps: # Step: Setup Elixir + Erlang image as the base. diff --git a/mix.exs b/mix.exs index 0cd1405..8a21fdb 100644 --- a/mix.exs +++ b/mix.exs @@ -5,7 +5,7 @@ defmodule Exneus.MixProject do [ app: :exneus, version: "0.1.0", - elixir: "~> 1.17", + elixir: "~> 1.12", start_permanent: Mix.env() == :prod, aliases: aliases(), preferred_cli_env: [ From be0685e8df71a7361772257706d427f53388a461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 21:53:54 -0300 Subject: [PATCH 03/13] Install json_polyfill when needed --- .github/workflows/ci.yml | 7 +++++++ mix.exs | 1 + 2 files changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e75554c..6f95c3a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -87,7 +87,14 @@ jobs: ${{runner.os}}-mix- # Step: Download project dependencies. If unchanged, uses the cached version. + - name: Install dependencies (Polyfill) + if: ${{fromJSON(matrix.otp-version) < 27}} + run: mix deps.get + env: + MIX_ENV: polyfill + - name: Install dependencies + if: ${{fromJSON(matrix.otp-version) >= 27}} run: mix deps.get # Step: Compile the project treating any warnings as errors. diff --git a/mix.exs b/mix.exs index 8a21fdb..2e7b3f5 100644 --- a/mix.exs +++ b/mix.exs @@ -52,6 +52,7 @@ defmodule Exneus.MixProject do # Run "mix help deps" to learn about dependencies. defp deps do [ + {:json_polyfill, only: :polyfill, runtime: false}, {:euneus, git: "https://github.com/williamthome/euneus", branch: "main"}, # dev {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, From ebed2cbaaf54c4b76dbee7a65e26d56377bdb1a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 22:03:20 -0300 Subject: [PATCH 04/13] Change CI cache strategy --- .github/workflows/ci.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f95c3a..717a97e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,9 +67,9 @@ jobs: cache-name: cache-elixir-deps with: path: deps - key: ${{runner.os}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} + key: ${{runner.os}}-polyfill-${{fromJSON(matrix.otp-version) < 27}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-mix-${{env.cache-name}}- + ${{runner.os}}-polyfill-${{fromJSON(matrix.otp-version) < 27}}-mix-${{env.cache-name}}- # Step: Define how to cache the `_build` directory. After the first run, # this speeds up tests runs a lot. This includes not re-compiling our @@ -81,10 +81,9 @@ jobs: cache-name: cache-compiled-build with: path: _build - key: ${{runner.os}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} + key: ${{runner.os}}-polyfill-${{fromJSON(matrix.otp-version) < 27}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-mix-${{env.cache-name}}- - ${{runner.os}}-mix- + ${{runner.os}}-polyfill-${{fromJSON(matrix.otp-version) < 27}}-mix-${{env.cache-name}}- # Step: Download project dependencies. If unchanged, uses the cached version. - name: Install dependencies (Polyfill) From 735be2b7f6c93a69ee64b593a2f31d7500745c89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 22:09:18 -0300 Subject: [PATCH 05/13] Create env var for polyfill --- .github/workflows/ci.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 717a97e..89d28cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,6 +46,9 @@ jobs: - otp-version: "27.0" elixir-version: "1.17" + env: + polyfil: fromJSON(matrix.otp-version) < 27 + steps: # Step: Setup Elixir + Erlang image as the base. - name: Set up Elixir @@ -67,9 +70,10 @@ jobs: cache-name: cache-elixir-deps with: path: deps - key: ${{runner.os}}-polyfill-${{fromJSON(matrix.otp-version) < 27}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} + key: | + ${{runner.os}}-polyfill-${{env.polyfil}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-polyfill-${{fromJSON(matrix.otp-version) < 27}}-mix-${{env.cache-name}}- + ${{runner.os}}-polyfill-${{env.polyfil}}-mix-${{env.cache-name}}- # Step: Define how to cache the `_build` directory. After the first run, # this speeds up tests runs a lot. This includes not re-compiling our @@ -81,19 +85,20 @@ jobs: cache-name: cache-compiled-build with: path: _build - key: ${{runner.os}}-polyfill-${{fromJSON(matrix.otp-version) < 27}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} + key: | + ${{runner.os}}-polyfill-${{env.polyfil}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-polyfill-${{fromJSON(matrix.otp-version) < 27}}-mix-${{env.cache-name}}- + ${{runner.os}}-polyfill-${{env.polyfil}}-mix-${{env.cache-name}}- # Step: Download project dependencies. If unchanged, uses the cached version. - name: Install dependencies (Polyfill) - if: ${{fromJSON(matrix.otp-version) < 27}} + if: ${{env.polyfil}} run: mix deps.get env: MIX_ENV: polyfill - name: Install dependencies - if: ${{fromJSON(matrix.otp-version) >= 27}} + if: ${{!env.polyfil}} run: mix deps.get # Step: Compile the project treating any warnings as errors. From d925037adb99092f037cac873b501c5a6528ba19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 22:11:01 -0300 Subject: [PATCH 06/13] Act on env vars issue --- .github/workflows/ci.yml | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 89d28cb..0f67cec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,10 +13,6 @@ name: CI workflow_dispatch: {} merge_group: -# Sets the ENV `MIX_ENV` to `test` for running tests -env: - MIX_ENV: test - permissions: contents: read @@ -47,7 +43,7 @@ jobs: elixir-version: "1.17" env: - polyfil: fromJSON(matrix.otp-version) < 27 + MIX_ENV: ${{ fromJSON(matrix.otp-version) < 27 && 'polyfill' || 'test' }} steps: # Step: Setup Elixir + Erlang image as the base. @@ -71,9 +67,9 @@ jobs: with: path: deps key: | - ${{runner.os}}-polyfill-${{env.polyfil}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} + ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-polyfill-${{env.polyfil}}-mix-${{env.cache-name}}- + ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.cache-name}}- # Step: Define how to cache the `_build` directory. After the first run, # this speeds up tests runs a lot. This includes not re-compiling our @@ -86,19 +82,12 @@ jobs: with: path: _build key: | - ${{runner.os}}-polyfill-${{env.polyfil}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} + ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-polyfill-${{env.polyfil}}-mix-${{env.cache-name}}- + ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.cache-name}}- # Step: Download project dependencies. If unchanged, uses the cached version. - - name: Install dependencies (Polyfill) - if: ${{env.polyfil}} - run: mix deps.get - env: - MIX_ENV: polyfill - - name: Install dependencies - if: ${{!env.polyfil}} run: mix deps.get # Step: Compile the project treating any warnings as errors. @@ -117,6 +106,7 @@ jobs: run: mix test - name: Check if build left artifacts + if: ${{ env.MIX_ENV != 'polyfill' }} run: | mix deps.clean --all mix deps.update --all From 0a5e9904db08056b3a783d0ad6e5de4814ab8802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 22:44:32 -0300 Subject: [PATCH 07/13] Comment the failiing test --- lib/exneus.ex | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/lib/exneus.ex b/lib/exneus.ex index 0679dd4..9360080 100644 --- a/lib/exneus.ex +++ b/lib/exneus.ex @@ -94,18 +94,6 @@ defmodule Exneus do - `records` - Transforms records into JSON objects. - _Example:_ - - iex> Exneus.encode!( - ...> # Same as `Record.defrecord(:foo, :bar, :baz)` - ...> {:foo, :bar, :baz}, - ...> %{codecs: [{:records, %{ - ...> # Use `Record.extract/2` to extract those record informations - ...> foo: {[:bar, :baz], 3} - ...> }}]} - ...> ) - "{\"bar\":\"bar\",\"baz\":\"baz\"}" - Custom codec example: iex> Exneus.encode!({:foo}, %{codecs: [fn ({:foo}) -> {:halt, :foo} end]}) From e9544abe4f844a85528036e523cc71126b55b6b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 22:49:46 -0300 Subject: [PATCH 08/13] Tweak code --- .github/workflows/ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0f67cec..74b750c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,7 +43,7 @@ jobs: elixir-version: "1.17" env: - MIX_ENV: ${{ fromJSON(matrix.otp-version) < 27 && 'polyfill' || 'test' }} + MIX_ENV: ${{fromJSON(matrix.otp-version) < 27 && 'polyfill' || 'test'}} steps: # Step: Setup Elixir + Erlang image as the base. @@ -63,13 +63,13 @@ jobs: id: cache-deps uses: actions/cache@v4 env: - cache-name: cache-elixir-deps + CACHE_NAME: cache-elixir-deps with: path: deps key: | - ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} + ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.CACHE_NAME}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.cache-name}}- + ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.CACHE_NAME}}- # Step: Define how to cache the `_build` directory. After the first run, # this speeds up tests runs a lot. This includes not re-compiling our @@ -78,13 +78,13 @@ jobs: id: cache-build uses: actions/cache@v4 env: - cache-name: cache-compiled-build + CACHE_NAME: cache-compiled-build with: path: _build key: | - ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.cache-name}}-${{hashFiles('**/mix.lock')}} + ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.CACHE_NAME}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.cache-name}}- + ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.CACHE_NAME}}- # Step: Download project dependencies. If unchanged, uses the cached version. - name: Install dependencies From 055c80ca7f6523d42788fa931ea618f0a56346ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 22:50:02 -0300 Subject: [PATCH 09/13] Temp comment job --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 74b750c..8290134 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,9 +105,9 @@ jobs: - name: Run tests run: mix test - - name: Check if build left artifacts - if: ${{ env.MIX_ENV != 'polyfill' }} - run: | - mix deps.clean --all - mix deps.update --all - git diff --exit-code +# - name: Check if build left artifacts +# if: ${{env.MIX_ENV != 'polyfill'}} +# run: | +# mix deps.clean --all +# mix deps.update --all +# git diff --exit-code From 9ca9a4f26e885f0298c275bf368d72c4eabe61b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 22:56:00 -0300 Subject: [PATCH 10/13] Cache by OTP version --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8290134..064e6a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,9 +67,9 @@ jobs: with: path: deps key: | - ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.CACHE_NAME}}-${{hashFiles('**/mix.lock')}} + ${{runner.os}}-otp-${{matrix.otp-version}}-mix-${{env.CACHE_NAME}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.CACHE_NAME}}- + ${{runner.os}}-otp-${{matrix.otp-version}}-mix-${{env.CACHE_NAME}}- # Step: Define how to cache the `_build` directory. After the first run, # this speeds up tests runs a lot. This includes not re-compiling our @@ -82,9 +82,9 @@ jobs: with: path: _build key: | - ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.CACHE_NAME}}-${{hashFiles('**/mix.lock')}} + ${{runner.os}}-otp-${{matrix.otp-version}}-mix-${{env.CACHE_NAME}}-${{hashFiles('**/mix.lock')}} restore-keys: | - ${{runner.os}}-env-${{env.MIX_ENV}}-mix-${{env.CACHE_NAME}}- + ${{runner.os}}-otp-${{matrix.otp-version}}-mix-${{env.CACHE_NAME}}- # Step: Download project dependencies. If unchanged, uses the cached version. - name: Install dependencies From 14c91a0e7cf303c07c0b87df8a6338f6c213f47f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 23:15:25 -0300 Subject: [PATCH 11/13] Try fix record example --- lib/exneus.ex | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/exneus.ex b/lib/exneus.ex index 9360080..a76a35b 100644 --- a/lib/exneus.ex +++ b/lib/exneus.ex @@ -94,6 +94,22 @@ defmodule Exneus do - `records` - Transforms records into JSON objects. + _Example:_ + + iex> Exneus.encode!( + ...> # Same as `Record.defrecord(:foo, :bar, :baz)` + ...> {:foo, :bar, :baz}, + ...> %{codecs: [{:records, %{ + ...> # Use `Record.extract/2` to extract those record informations + ...> foo: {[:bar, :baz], 3} + ...> }}]} + ...> ) + if String.to_integer(System.otp_release) >= 26 do + "{\"bar\":\"bar\",\"baz\":\"baz\"}" + else + "{\"baz\":\"baz\",\"bar\":\"bar\"}" + end + Custom codec example: iex> Exneus.encode!({:foo}, %{codecs: [fn ({:foo}) -> {:halt, :foo} end]}) From 02b6117f90187a4780dfe0b47719a142c8215cf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 23:24:00 -0300 Subject: [PATCH 12/13] Re-enable artifacts check --- .github/workflows/ci.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 064e6a5..67ac930 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,9 +105,10 @@ jobs: - name: Run tests run: mix test -# - name: Check if build left artifacts -# if: ${{env.MIX_ENV != 'polyfill'}} -# run: | -# mix deps.clean --all -# mix deps.update --all -# git diff --exit-code + # Step: Check deps. + - name: Check if build left artifacts + if: ${{env.MIX_ENV != 'polyfill'}} + run: | + mix deps.clean --all --only test + mix deps.update --all --only test + git diff --exit-code From 4949072022fc3af4c8683cf43a97d9b9dc9c0449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Fank=20Thom=C3=A9?= Date: Thu, 8 Aug 2024 23:34:38 -0300 Subject: [PATCH 13/13] Remove artifacts check --- .github/workflows/ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67ac930..d36426f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,11 +104,3 @@ jobs: # Step: Execute the tests. - name: Run tests run: mix test - - # Step: Check deps. - - name: Check if build left artifacts - if: ${{env.MIX_ENV != 'polyfill'}} - run: | - mix deps.clean --all --only test - mix deps.update --all --only test - git diff --exit-code