defmodule KCCore.Umbrella.MixProject do
use Mix.Project
def project,
do: [
apps_path: "apps",
start_permanent: Mix.env() == :prod,
deps: deps(),
releases: releases(),
aliases: aliases(),
dialyzer: [
plt_core_path: "priv/plts",
plt_file: {:no_warn, "priv/plts/dialyzer.plt"},
plt_add_deps: :app_tree,
plt_add_apps: [:mix, :ex_unit],
flags: [:error_handling, :underspecs]
],
test_coverage: [tool: ExCoveralls],
preferred_cli_env: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.post": :test,
"coveralls.html": :test
]
]
def aliases() do
[
"ecto.setup": ["ecto.create", "ecto.migrate"],
"ecto.reset": ["ecto.drop", "ecto.setup"],
test: ["ecto.setup", "test"],
"dev.update_deps": [
"hex.outdated --within-requirements",
"deps.update --all --only",
"deps.clean --all --only",
"deps.get",
"deps.compile",
"hex.outdated --within-requirements"
],
"dev.checks": [
"clean",
"format",
"compile",
" hex.outdated --within-requirements",
"credo",
"sobelow",
"cmd mix test --trace",
"dialyzer"
]
]
end
defp deps(),
do: [
{:dialyxir, "~> 1.3", only: [:dev, :test], runtime: false},
{:excoveralls, "~> 0.16.1", only: :test, runtime: false},
{:ex_doc, "~> 0.29.4", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:sobelow, "~> 0.12.2", only: [:dev, :test], runtime: false},
# Override because there is a version conflict with AppStack
{:hackney, "~> 1.18.1"}
]
defp releases(),
do: [
kc_release: [
version: "0.0.1",
applications: [
proxy: :permanent,
kc_core: :permanent,
kc_web: :permanent,
admin: :permanent
],
include_executables_for: [:unix]
]
]
def application,
do: [
extra_applications: [
:logger,
:ssl,
:runtime_tools
]
]
end