デプロイにあたり、tarに固めたものをサーバーに持っていく
tar
で固める- 各tarにはバージョンとコミットIDをつける
結論
mix.exs に下記のような設定を行ってmix release
を実施する
@@ -1,16 +1,27 @@
defmodule Tontenkan.MixProject do
use Mix.Project
+ @version "1.0.0"
+
def project do
[
app: :tontenkan,
- version: "1.0.0",
+ version: @version,
elixir: "~> 1.12",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:gettext] ++ Mix.compilers(),
start_permanent: Mix.env() == :prod,
aliases: aliases(),
- deps: deps()
+ deps: deps(),
+ releases: [
+ service: fn ->
+ [
+ version: @version <> "+" <> git_ref(),
+ steps: [:assemble, :tar],
+ path: "./service"
+ ]
+ end
+ ]
]
end
@@ -74,4 +85,9 @@ defmodule Tontenkan.MixProject do
"assets.deploy": ["tailwind default --minify", "esbuild default --minify", "phx.digest"]
]
end
+
+ defp git_ref do
+ {id, 0} = System.cmd("git", ["rev-parse", "--short", "HEAD"])
+ String.trim(id)
+ end
end