defmodule StepFlow.MixProject do use Mix.Project @source_url "https://gitlab.com/media-cloud-ai/backend/ex_step_flow" def project do [ app: :step_flow, version: "1.8.1-rc2", elixir: "~> 1.9", start_permanent: Mix.env() == :prod, deps: deps(), test_coverage: [tool: ExCoveralls], compilers: Mix.compilers(), preferred_cli_env: [ coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test ], package: package(), description: description(), elixirc_paths: elixirc_paths(Mix.env()), aliases: aliases(), # Docs name: "StepFlow", homepage_url: @source_url, docs: [ main: "readme", extras: ["README.md"], source_url: @source_url ] ] end def application do [ mod: {StepFlow.Application, []}, extra_applications: [ :amqp, :httpoison, :jason, :logger, :phoenix, :plug, :poison, :postgrex, :slack, :timex ] ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp deps do [ {:amqp, "~> 3.3.0"}, {:cowboy, "~> 2.12.0"}, {:credo, "1.7.5", only: [:dev, :test], runtime: false}, {:ecto, "~> 3.11"}, {:ecto_sql, "~> 3.11"}, {:ecto_enum, "~> 1.4"}, {:excoveralls, "~> 0.18", only: :test}, {:ex_doc, "~> 0.32.0", only: :dev, runtime: false}, {:ex_json_schema, "~> 0.10.1"}, {:json, "~> 1.4.1"}, {:json_xema, "~> 0.6.2"}, {:fake_server, "~> 2.1", only: :test}, {:gettext, "~> 0.24.0"}, {:httpoison, "~> 1.8.2"}, {:jason, "~> 1.4.1"}, {:mix_audit, "~> 2.1.1", only: [:dev, :test], runtime: false}, {:open_api_spex, "~> 3.18.0"}, {:phoenix, "~> 1.7.11"}, {:phoenix_html, "~> 4.1.1"}, {:phoenix_html_helpers, "~> 1.0"}, {:phoenix_live_reload, "~> 1.5.3", only: :dev}, {:phoenix_pubsub, "~> 2.1.3"}, {:phoenix_view, "~> 2.0.2"}, {:plug, "~> 1.15.1"}, {:plug_cowboy, "~> 2.7", only: :dev}, {:poison, "~> 5.0.0"}, {:postgrex, "~> 0.17.3"}, {:prometheus_ex, "~> 3.1.0"}, {:prometheus_plugs, "~> 1.1.5"}, {:slack, "~> 0.23.5"}, {:timex, "~> 3.7.11"}, {:xema, "0.17.1"} ] end defp description() do "Step flow manager for Elixir applications" end defp package() do [ name: "step_flow", files: ["lib", "mix.exs", "README*", "LICENSE*"], maintainers: [ "Valentin Noël", "Marc-Antoine Arnaud" ], licenses: ["MIT"], links: %{"GitHub" => @source_url} ] end defp aliases do [ "ecto.reset": ["ecto.drop", "ecto.setup"], audit: ["deps.audit"], checks: [ "ecto.create --quiet", "test", "format --check-formatted", "credo --strict", "deps.audit" ], openapi: [ "openapi.spec.json --spec StepFlow.ApiSpec --start-app=false --pretty priv/static/step_flow_openapi.json" ], test: ["ecto.create --quiet", "test"], version: &get_version/1 ] end defp get_version(_) do project() |> Keyword.fetch!(:version) |> IO.puts() end end