accent/mix.exs

163 lines
4.1 KiB
Elixir

defmodule Accent.Mixfile do
use Mix.Project
@version "1.18.4"
def project do
[
app: :accent,
version: @version,
elixir: "~> 1.15",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: Mix.compilers(),
build_embedded: Mix.env() == :prod,
start_permanent: Mix.env() == :prod,
aliases: aliases(),
xref: [exclude: IEx],
deps: deps(),
releases: releases(),
test_coverage: [tool: ExCoveralls]
]
end
# Configuration for the OTP application.
#
# Type `mix help compile.app` for more information.
def application do
[mod: {Accent, []}, extra_applications: [:logger, :canada]]
end
# Specifies which paths to compile per environment.
defp elixirc_paths(:test), do: ["lib", "web", "vendor", "test/support"]
defp elixirc_paths(_), do: ["lib", "web", "vendor"]
# Specifies your project dependencies.
#
# Type `mix help deps` for examples and options.
defp deps do
[
# Framework
{:phoenix, "~> 1.4"},
{:phoenix_html, "~> 3.0"},
# Plugs
{:plug_assign, "~> 1.0.0"},
{:canary, "~> 1.1.0"},
{:corsica, "~> 2.0"},
{:plug_cowboy, "~> 2.0"},
{:cowboy, "~> 2.0"},
{:plug, "1.14.2"},
{:plug_canonical_host, "~> 2.0"},
# Database
{:ecto, "~> 3.2", override: true},
{:ecto_sql, "~> 3.2"},
{:ecto_dev_logger, "~> 0.4"},
{:postgrex, "~> 0.14"},
{:cloak_ecto, "~> 1.2"},
# Spelling interop with Java runtime
{:exile, "~> 0.7"},
# Phoenix data helpers
{:phoenix_ecto, "~> 4.0"},
{:scrivener_ecto, "~> 2.0"},
{:dataloader, "~> 2.0"},
# GraphQL
{:absinthe, "~> 1.4"},
{:absinthe_plug, "~> 1.4"},
{:absinthe_error_payload, "~> 1.0"},
# Utils
{:jsone, "~> 1.4"},
{:mochiweb, "~> 2.18"},
{:httpoison, "~> 1.1"},
{:gettext, "~> 0.20.0"},
{:csv, "~> 2.0"},
{:php_assoc_map, "~> 0.5"},
{:jason, "~> 1.2", override: true},
{:erlsom, "~> 1.5"},
{:xml_builder, "~> 2.0"},
# Auth
{:ueberauth, "~> 0.10"},
{:oauth2, "~> 2.0"},
{:ueberauth_microsoft, "~> 0.21"},
{:ueberauth_google, "~> 0.6"},
{:ueberauth_github, "~> 0.7"},
{:ueberauth_discord, "~> 0.5"},
{:ueberauth_auth0, "~> 2.0"},
# Errors
{:sentry, "~> 7.0"},
# Mails
{:bamboo, "~> 2.0"},
{:bamboo_phoenix, "~> 1.0"},
{:bamboo_smtp, "~> 4.0"},
# Events handling
{:oban, "~> 2.13"},
# Metrics and monitoring
{:new_relic_agent, "~> 1.27"},
{:new_relic_absinthe, "~> 0.0"},
{:telemetry, "~> 1.0", override: true},
{:telemetry_ui, "~> 4.0"},
{:ecto_psql_extras, "~> 0.7"},
# Mock testing
{:mox, "~> 1.0", only: :test},
{:mock, "~> 0.3.0", only: :test},
# Google API authentication
{:goth, "~> 1.4"},
# Network request
{:tesla, "~> 1.3"},
# Dev
{:dialyxir, "~> 1.0", only: ~w(dev test)a, runtime: false},
{:credo, ">= 0.0.0", only: ~w(dev test)a},
{:credo_envvar, "~> 0.1.0", only: ~w(dev test)a, runtime: false},
{:styler, "~> 0.1", only: ~w(dev test)a, runtime: false},
{:excoveralls, "~> 0.8", only: :test},
{:phoenix_live_reload, "~> 1.0", only: :dev}
] ++
system_specific_deps()
end
defp system_specific_deps do
is_apple_arm64 =
:os.type() === {:unix, :darwin} and
not List.starts_with?(:erlang.system_info(:system_architecture), ~c"x86_64")
if is_apple_arm64 do
[]
else
[
{:p1_utils, "1.0.15", override: true},
{:fast_yaml, github: "processone/fast_yaml", ref: "e789f68895f71b7ad31057177810ca0161bf790e"}
]
end
end
defp aliases do
[
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
"ecto.reset": ["ecto.drop", "ecto.setup"],
test: ["ecto.create --quiet", "ecto.migrate", "test"]
]
end
defp releases do
[
accent: [
version: @version,
applications: [accent: :permanent]
]
]
end
end