defmodule Once.MixProject do use Mix.Project def project do [ app: :once, version: "1.2.2", elixir: "~> 1.16", start_permanent: Mix.env() == :prod, deps: deps(), elixirc_paths: elixirc_paths(Mix.env()), aliases: aliases(), description: """ An Ecto type for locally unique 64-bits IDs generated by multiple Elixir nodes """, package: [ licenses: ["Apache-2.0"], links: %{github: "https://github.com/juulSme/Once"}, source_url: "https://github.com/juulSme/Once", exclude_patterns: ["priv"] ], source_url: "https://github.com/juulSme/Once", name: "Once", docs: [ source_ref: ~s(v1.2.2), extras: ~w(./README.md ./LICENSE.md ./CHANGELOG.md ./MIGRATION.md), main: "Once", skip_undefined_reference_warnings_on: ~w(), filter_modules: ~r(^Elixir\.Once\.?.*) ] ] end def cli do [preferred_envs: ["test.unit": :test]] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger] ] end # Run "mix help deps" to learn about dependencies. defp deps do [ {:ex_doc, "~> 0.36", only: [:dev, :test], runtime: false}, {:benchee, "~> 1.0", only: [:dev], runtime: false}, {:no_noncense, "~> 1.1"}, {:ecto, "~> 3.0"}, {:mix_test_watch, "~> 1.2", only: [:dev], runtime: false}, {:ecto_sql, "~> 3.4", only: [:dev, :test]}, {:postgrex, "~> 0.1", only: [:dev, :test]}, {:myxql, "~> 0.1", only: [:dev, :test]}, {:tidewave, "~> 0.5.0", only: [:dev]}, {:bandit, "~> 1.0", only: [:dev]} ] end defp elixirc_paths(:dev), do: ["lib", "test/support"] defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp aliases do [ setup: ["deps.get", "ecto.setup", "cmd npm install --prefix assets"], "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.unit": fn args -> Mix.Tasks.Test.run(["--exclude", "db" | args]) end, tidewave: "run --no-halt -e 'Agent.start(fn -> Bandit.start_link(plug: Tidewave, port: 4100) end)'" ] end end