You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.8 KiB
106 lines
2.8 KiB
defmodule GcIndexRelay.MixProject do |
|
use Mix.Project |
|
|
|
def project do |
|
[ |
|
app: :gc_index_relay, |
|
version: "0.1.0", |
|
elixir: "~> 1.15", |
|
elixirc_paths: elixirc_paths(Mix.env()), |
|
start_permanent: Mix.env() == :prod, |
|
aliases: aliases(), |
|
deps: deps(), |
|
compilers: [:phoenix_live_view] ++ Mix.compilers(), |
|
listeners: [Phoenix.CodeReloader] |
|
] |
|
end |
|
|
|
# Configuration for the OTP application. |
|
# |
|
# Type `mix help compile.app` for more information. |
|
def application do |
|
[ |
|
mod: {GcIndexRelay.Application, []}, |
|
extra_applications: [:logger, :runtime_tools] |
|
] |
|
end |
|
|
|
def cli do |
|
[ |
|
preferred_envs: [ |
|
precommit: :test, |
|
"test.unit": :test, |
|
"test.integration": :test |
|
] |
|
] |
|
end |
|
|
|
# Specifies which paths to compile per environment. |
|
defp elixirc_paths(:test), do: ["lib", "test/support"] |
|
defp elixirc_paths(_), do: ["lib"] |
|
|
|
# Specifies your project dependencies. |
|
# |
|
# Type `mix help deps` for examples and options. |
|
defp deps do |
|
[ |
|
{:phoenix, "~> 1.8.3"}, |
|
{:phoenix_ecto, "~> 4.5"}, |
|
{:ecto_sql, "~> 3.13"}, |
|
{:postgrex, ">= 0.0.0"}, |
|
{:phoenix_html, "~> 4.1"}, |
|
{:phoenix_live_reload, "~> 1.2", only: :dev}, |
|
{:phoenix_live_view, "~> 1.1.0"}, |
|
{:lazy_html, ">= 0.1.0", only: :test}, |
|
{:phoenix_live_dashboard, "~> 0.8.3"}, |
|
{:swoosh, "~> 1.16"}, |
|
{:req, "~> 0.5"}, |
|
{:telemetry_metrics, "~> 1.0"}, |
|
{:telemetry_poller, "~> 1.0"}, |
|
{:gettext, "~> 1.0"}, |
|
{:jason, "~> 1.2"}, |
|
{:dns_cluster, "~> 0.2.0"}, |
|
{:bandit, "~> 1.5"}, |
|
{:lib_secp256k1, "~> 0.7.1"}, |
|
{:phoenix_swagger, "~> 0.8"} |
|
] |
|
end |
|
|
|
# Aliases are shortcuts or tasks specific to the current project. |
|
# For example, to install project dependencies and perform other setup tasks, run: |
|
# |
|
# $ mix setup |
|
# |
|
# See the documentation for `Mix` for more info on aliases. |
|
defp aliases do |
|
[ |
|
setup: ["deps.get", "ecto.setup"], |
|
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"], |
|
"ecto.reset": ["ecto.drop", "ecto.setup"], |
|
test: test_alias(), |
|
"test.unit": ["test --only unit"], |
|
"test.integration": [ |
|
"ecto.create --quiet", |
|
"ecto.migrate --quiet", |
|
"test --only integration" |
|
], |
|
precommit: [ |
|
"compile --warnings-as-errors", |
|
"deps.unlock --unused", |
|
"format", |
|
"test.integration" |
|
] |
|
] |
|
end |
|
|
|
# Conditionally set up database for tests |
|
# Set REQUIRE_DB=true to run database migrations before tests |
|
# Or use mix test.integration for integration tests with database |
|
defp test_alias do |
|
if System.get_env("REQUIRE_DB") == "true" do |
|
["test.integration"] |
|
else |
|
["test"] |
|
end |
|
end |
|
end
|
|
|