All checks were successful
Deploy Docker Images / Build, push, and deploy (push) Successful in 16m37s
Add first-class dns/web roles, Oban queue filtering by role, optional read replica (Repo.Reader), Auth route module, optional edge compose service, slim elektrine_edge release, and architecture docs for the control/data-plane target. Deploy already phases app vs edge; dns containers now use ROLE=dns.
82 lines
2.3 KiB
Elixir
82 lines
2.3 KiB
Elixir
defmodule ElektrineUmbrella.MixProject do
|
|
use Mix.Project
|
|
|
|
def project do
|
|
[
|
|
version: "0.1.0",
|
|
apps_path: "apps",
|
|
start_permanent: Mix.env() == :prod,
|
|
consolidate_protocols: Mix.env() == :prod,
|
|
listeners: [Phoenix.CodeReloader],
|
|
releases: releases(),
|
|
deps: deps(),
|
|
aliases: aliases()
|
|
]
|
|
end
|
|
|
|
def cli do
|
|
[preferred_envs: [check: :test, "arbp.conformance": :test]]
|
|
end
|
|
|
|
defp deps, do: []
|
|
|
|
defp releases do
|
|
# Prefer one image + ELEKTRINE_RUNTIME_ROLE for multi-plane deploys.
|
|
# Slim releases exist for DNS-only / edge-facing packaging when needed.
|
|
full_apps = [
|
|
elektrine: :permanent,
|
|
arblarg: :permanent,
|
|
elektrine_dns: :permanent,
|
|
elektrine_web: :permanent,
|
|
elektrine_email: :permanent,
|
|
kairo: :permanent,
|
|
atomine: :permanent,
|
|
elektrine_social: :permanent,
|
|
elektrine_vpn: :permanent,
|
|
elektrine_nerve: :permanent,
|
|
elektrine_uptime: :permanent,
|
|
paige: :permanent
|
|
]
|
|
|
|
[
|
|
elektrine: [applications: full_apps],
|
|
# Authoritative DNS plane (no Phoenix web endpoint apps required at runtime).
|
|
elektrine_dns: [
|
|
applications: [
|
|
elektrine: :permanent,
|
|
elektrine_dns: :permanent
|
|
]
|
|
],
|
|
# Edge-facing HTTP plane: control + web + dns edge modules (proxy/tunnels).
|
|
elektrine_edge: [
|
|
applications: [
|
|
elektrine: :permanent,
|
|
elektrine_dns: :permanent,
|
|
elektrine_web: :permanent,
|
|
atomine: :permanent
|
|
]
|
|
]
|
|
]
|
|
end
|
|
|
|
defp aliases do
|
|
[
|
|
check: [
|
|
"format --check-formatted",
|
|
"do --app elektrine cmd --cd ../.. scripts/check_tracked_generated_artifacts.sh",
|
|
"do --app elektrine cmd --cd ../.. scripts/check_legacy_marker_budget.sh",
|
|
"do --app elektrine cmd --cd ../.. scripts/check_maintainability_budgets.sh",
|
|
"do --app elektrine cmd --cd ../.. scripts/check_design_consistency.sh",
|
|
"do --app elektrine cmd --cd assets npm run check",
|
|
"compile --warnings-as-errors",
|
|
"credo --strict",
|
|
"deps.audit",
|
|
"hex.audit",
|
|
"deps.unlock --check-unused",
|
|
"test"
|
|
],
|
|
setup: ["cmd --cd apps/elektrine mix setup"],
|
|
seed: ["cmd --cd apps/elektrine mix run priv/repo/seeds.exs"]
|
|
]
|
|
end
|
|
end
|