にむかひて

`mix release`の結果をtarに固める

2022年2月 トップ > ひとこと > 調査したことの記録
#Elixir #Phoenix

デプロイにあたり、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

サイト内検索