85 lines
1.9 KiB
Elixir
85 lines
1.9 KiB
Elixir
defmodule DBConnection.Mixfile do
|
|
use Mix.Project
|
|
|
|
@source_url "https://github.com/elixir-ecto/db_connection"
|
|
@pools [:connection_pool, :ownership]
|
|
@version "2.6.0"
|
|
|
|
def project do
|
|
[
|
|
app: :db_connection,
|
|
version: @version,
|
|
elixir: "~> 1.8",
|
|
deps: deps(),
|
|
docs: docs(),
|
|
description: description(),
|
|
package: package(),
|
|
build_per_environment: false,
|
|
consolidate_protocols: false,
|
|
test_paths: test_paths(Mix.env()),
|
|
aliases: ["test.all": ["test", "test.pools"], "test.pools": &test_pools/1],
|
|
preferred_cli_env: ["test.all": :test]
|
|
]
|
|
end
|
|
|
|
def application do
|
|
[
|
|
extra_applications: [:logger],
|
|
mod: {DBConnection.App, []}
|
|
]
|
|
end
|
|
|
|
defp deps do
|
|
[
|
|
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
|
|
{:telemetry, "~> 0.4 or ~> 1.0"}
|
|
]
|
|
end
|
|
|
|
defp docs do
|
|
[
|
|
source_url: @source_url,
|
|
source_ref: "v#{@version}",
|
|
main: DBConnection,
|
|
extras: ["CHANGELOG.md"]
|
|
]
|
|
end
|
|
|
|
defp description do
|
|
"""
|
|
Database connection behaviour for database transactions and connection pooling
|
|
"""
|
|
end
|
|
|
|
defp package do
|
|
%{
|
|
licenses: ["Apache-2.0"],
|
|
maintainers: ["James Fish"],
|
|
links: %{"GitHub" => @source_url}
|
|
}
|
|
end
|
|
|
|
defp test_paths(pool) when pool in @pools, do: ["integration_test/#{pool}"]
|
|
defp test_paths(_), do: ["test"]
|
|
|
|
defp test_pools(args) do
|
|
for env <- @pools, do: env_run(env, args)
|
|
end
|
|
|
|
defp env_run(env, args) do
|
|
args = if IO.ANSI.enabled?(), do: ["--color" | args], else: ["--no-color" | args]
|
|
|
|
IO.puts("==> Running tests for MIX_ENV=#{env} mix test")
|
|
|
|
{_, res} =
|
|
System.cmd("mix", ["test" | args],
|
|
into: IO.binstream(:stdio, :line),
|
|
env: [{"MIX_ENV", to_string(env)}]
|
|
)
|
|
|
|
if res > 0 do
|
|
System.at_exit(fn _ -> exit({:shutdown, 1}) end)
|
|
end
|
|
end
|
|
end
|