forked from blockscout/blockscout
-
Notifications
You must be signed in to change notification settings - Fork 20
/
mix.exs
106 lines (94 loc) · 2.93 KB
/
mix.exs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
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",
elixirc_options: [
warnings_as_errors: true
],
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