diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..1d1c7311 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,47 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +env: + MIX_ENV: test + +permissions: + contents: read + +jobs: + build: + env: + INFURA_API_KEY: "" + name: Build and test + runs-on: ubuntu-latest + strategy: + matrix: + elixir: [1.15] + otp: [25] + steps: + - uses: actions/checkout@v3 + - name: Set up Elixir + uses: erlef/setup-beam@v1 + with: + elixir-version: ${{ matrix.elixir }} # Define the elixir version [required] + otp-version: ${{ matrix.otp }} # Define the OTP version [required] + env: + ImageOS: ubuntu20 + - name: Restore dependencies cache + uses: actions/cache@v3 + with: + path: server/deps + key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }} + restore-keys: ${{ runner.os }}-mix- + - name: Install dependencies + run: make setup + - name: Check Elixir Formatting + run: mix format --check-formatted + - name: Compiles without warnings + run: mix compile --all-warnings + - name: Run tests + run: mix test diff --git a/Makefile b/Makefile index d5afb89e..a88a9f80 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,7 @@ -run: - mix deps.get +.PHONY: run setup + +run: setup iex -S mix phx.server + +setup: + mix deps.get diff --git a/lib/starknet_explorer_web/components/layouts/app.html.heex b/lib/starknet_explorer_web/components/layouts/app.html.heex index 04ec5a02..ac14e020 100644 --- a/lib/starknet_explorer_web/components/layouts/app.html.heex +++ b/lib/starknet_explorer_web/components/layouts/app.html.heex @@ -9,7 +9,7 @@
@elixirphoenix - GitHub + GitHub >), do: :hash defp num_or_hash(_num), do: :num - def mount(_params = %{"number_or_hash" => param}, session, socket) do + def mount(_params = %{"number_or_hash" => param}, _session, socket) do {:ok, block} = case num_or_hash(param) do :hash -> @@ -20,7 +19,7 @@ defmodule StarknetExplorerWeb.BlockDetailLive do {:ok, assign(socket, :block, block)} end - def render(assigns = %{block: block}) do + def render(assigns = %{block: _block}) do ~H""" diff --git a/lib/starknet_explorer_web/live/pages/home/index.ex b/lib/starknet_explorer_web/live/pages/home/index.ex index b77647b0..ddf1c4dc 100644 --- a/lib/starknet_explorer_web/live/pages/home/index.ex +++ b/lib/starknet_explorer_web/live/pages/home/index.ex @@ -3,11 +3,13 @@ defmodule StarknetExplorerWeb.HomeLive.Index do alias StarknetExplorer.Rpc alias StarknetExplorer.DateUtils + @impl true def mount(_params, _session, socket) do Process.send(self(), :load_blocks, []) {:ok, assign(socket, :blocks, [])} end + @impl true def render(assigns) do ~H"""
diff --git a/mix.exs b/mix.exs index 189e2961..82d96921 100644 --- a/mix.exs +++ b/mix.exs @@ -67,7 +67,8 @@ defmodule StarknetExplorer.MixProject do setup: ["deps.get", "ecto.setup", "assets.setup", "assets.build"], "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"], "ecto.reset": ["ecto.drop", "ecto.setup"], - test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"], + # test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"], + test: ["test"], "assets.setup": ["tailwind.install --if-missing", "esbuild.install --if-missing"], "assets.build": ["tailwind default", "esbuild default"], "assets.deploy": ["tailwind default --minify", "esbuild default --minify", "phx.digest"] diff --git a/test/starknet_explorer_web/controllers/page_controller_test.exs b/test/starknet_explorer_web/controllers/page_controller_test.exs index e648de80..c13b066c 100644 --- a/test/starknet_explorer_web/controllers/page_controller_test.exs +++ b/test/starknet_explorer_web/controllers/page_controller_test.exs @@ -3,6 +3,6 @@ defmodule StarknetExplorerWeb.PageControllerTest do test "GET /", %{conn: conn} do conn = get(conn, ~p"/") - assert html_response(conn, 200) =~ "Peace of mind from prototype to production" + assert html_response(conn, 200) end end diff --git a/test/support/data_case.ex b/test/support/data_case.ex index ed75a19b..c9570862 100644 --- a/test/support/data_case.ex +++ b/test/support/data_case.ex @@ -36,8 +36,8 @@ defmodule StarknetExplorer.DataCase do Sets up the sandbox based on the test tags. """ def setup_sandbox(tags) do - pid = Ecto.Adapters.SQL.Sandbox.start_owner!(StarknetExplorer.Repo, shared: not tags[:async]) - on_exit(fn -> Ecto.Adapters.SQL.Sandbox.stop_owner(pid) end) + # pid = Ecto.Adapters.SQL.Sandbox.start_owner!(StarknetExplorer.Repo, shared: not tags[:async]) + # on_exit(fn -> Ecto.Adapters.SQL.Sandbox.stop_owner(pid) end) end @doc """ diff --git a/test/test_helper.exs b/test/test_helper.exs index 5351fcd7..304d1e7a 100644 --- a/test/test_helper.exs +++ b/test/test_helper.exs @@ -1,2 +1,2 @@ ExUnit.start() -Ecto.Adapters.SQL.Sandbox.mode(StarknetExplorer.Repo, :manual) +# Ecto.Adapters.SQL.Sandbox.mode(StarknetExplorer.Repo, :manual)