You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.9 KiB
103 lines
2.9 KiB
defmodule BlockScout.Mixfile do
|
|
use Mix.Project
|
|
|
|
# Functions
|
|
|
|
def project do
|
|
[
|
|
# app: :block_scout,
|
|
# aliases: aliases(config_env()),
|
|
version: "4.1.8",
|
|
apps_path: "apps",
|
|
deps: deps(),
|
|
dialyzer: dialyzer(),
|
|
elixir: "~> 1.13",
|
|
preferred_cli_env: [
|
|
credo: :test,
|
|
dialyzer: :test
|
|
],
|
|
# start_permanent: config_env() == :prod,
|
|
releases: [
|
|
blockscout: [
|
|
applications: [
|
|
block_scout_web: :permanent,
|
|
ethereum_jsonrpc: :permanent,
|
|
explorer: :permanent,
|
|
indexer: :permanent
|
|
],
|
|
steps: [:assemble, ©_prod_runtime_config/1],
|
|
validate_compile_env: false
|
|
]
|
|
]
|
|
]
|
|
end
|
|
|
|
## Private Functions
|
|
|
|
defp copy_prod_runtime_config(%Mix.Release{path: path} = release) do
|
|
File.mkdir_p!(Path.join([path, "config", "runtime"]))
|
|
File.cp!(Path.join(["config", "runtime", "prod.exs"]), Path.join([path, "config", "runtime", "prod.exs"]))
|
|
File.mkdir_p!(Path.join([path, "apps", "explorer", "config", "prod"]))
|
|
|
|
File.cp_r!(
|
|
Path.join(["apps", "explorer", "config", "prod"]),
|
|
Path.join([path, "apps", "explorer", "config", "prod"])
|
|
)
|
|
|
|
File.mkdir_p!(Path.join([path, "apps", "indexer", "config", "prod"]))
|
|
File.cp_r!(Path.join(["apps", "indexer", "config", "prod"]), Path.join([path, "apps", "indexer", "config", "prod"]))
|
|
|
|
release
|
|
end
|
|
|
|
defp dialyzer() do
|
|
[
|
|
plt_add_deps: :transitive,
|
|
plt_add_apps: ~w(ex_unit mix)a,
|
|
ignore_warnings: ".dialyzer-ignore",
|
|
plt_core_path: "priv/plts",
|
|
plt_file: {:no_warn, "priv/plts/dialyzer.plt"}
|
|
]
|
|
end
|
|
|
|
# defp aliases(env) do
|
|
# [
|
|
# # to match behavior of `mix test` in `apps/indexer`, which needs to not start applications for `indexer` to
|
|
# # prevent its supervision tree from starting, which is undesirable in test
|
|
# test: "test --no-start"
|
|
# ] ++ env_aliases(env)
|
|
# end
|
|
|
|
# defp env_aliases(:dev) do
|
|
# []
|
|
# end
|
|
|
|
# defp env_aliases(_env) do
|
|
# [
|
|
# compile: "compile --warnings-as-errors"
|
|
# ]
|
|
# end
|
|
|
|
# Dependencies can be Hex packages:
|
|
#
|
|
# {:mydep, "~> 0.3.0"}
|
|
#
|
|
# Or git/path repositories:
|
|
#
|
|
# {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"}
|
|
#
|
|
# Type "mix help deps" for more examples and options.
|
|
#
|
|
# Dependencies listed here are available only for this project
|
|
# and cannot be accessed from applications inside the apps folder
|
|
defp deps do
|
|
[
|
|
{:prometheus_ex, git: "https://github.com/lanodan/prometheus.ex", branch: "fix/elixir-1.14", override: true},
|
|
{:absinthe_plug, git: "https://github.com/blockscout/absinthe_plug.git", tag: "1.5.3", override: true},
|
|
{:tesla, "~> 1.4.4"},
|
|
# Documentation
|
|
{:ex_doc, "~> 0.29.0", only: :dev, runtime: false},
|
|
{:number, "~> 1.0.3"}
|
|
]
|
|
end
|
|
end
|
|
|