diff options
author | Ivan Tashkinov <ivant.business@gmail.com> | 2019-07-06 10:17:06 +0300 |
---|---|---|
committer | Ivan Tashkinov <ivant.business@gmail.com> | 2019-07-06 10:17:06 +0300 |
commit | ad8d86e7c600bca65e5f0bb407651d33f1e53043 (patch) | |
tree | 75c395c888a10bad571769eaf828d989c2a5b2c4 /mix.exs | |
parent | a7994185739522dee80e22f76e5fdac1a3b8279b (diff) | |
parent | 3589b30ddc9d0c23ca6f00264cff05e53be1b270 (diff) | |
download | pleroma-ad8d86e7c600bca65e5f0bb407651d33f1e53043.tar.gz pleroma-ad8d86e7c600bca65e5f0bb407651d33f1e53043.zip |
Merge remote-tracking branch 'remotes/upstream/develop' into 161-incoming-replies-depth-limit
Diffstat (limited to 'mix.exs')
-rw-r--r-- | mix.exs | 47 |
1 files changed, 31 insertions, 16 deletions
@@ -174,10 +174,14 @@ defmodule Pleroma.Mixfile do # Builds a version string made of: # * the application version # * a pre-release if ahead of the tag: the describe string (-count-commithash) - # * build info: + # * branch name + # * build metadata: # * a build name if `PLEROMA_BUILD_NAME` or `:pleroma, :build_name` is defined # * the mix environment if different than prod defp version(version) do + identifier_filter = ~r/[^0-9a-z\-]+/i + + # Pre-release version, denoted from patch version with a hyphen {git_tag, git_pre_release} = with {tag, 0} <- System.cmd("git", ["describe", "--tags", "--abbrev=0"], stderr_to_stdout: true), @@ -198,6 +202,19 @@ defmodule Pleroma.Mixfile do ) end + # Branch name as pre-release version component, denoted with a dot + branch_name = + with {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]), + branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name, + true <- branch_name != "master" do + branch_name = + branch_name + |> String.trim() + |> String.replace(identifier_filter, "-") + + "." <> branch_name + end + build_name = cond do name = Application.get_env(:pleroma, :build_name) -> name @@ -206,28 +223,26 @@ defmodule Pleroma.Mixfile do end env_name = if Mix.env() != :prod, do: to_string(Mix.env()) + env_override = System.get_env("PLEROMA_BUILD_ENV") - build = + env_name = + case env_override do + nil -> env_name + env_override when env_override in ["", "prod"] -> nil + env_override -> env_override + end + + # Build metadata, denoted with a plus sign + build_metadata = [build_name, env_name] |> Enum.filter(fn string -> string && string != "" end) - |> Enum.join("-") + |> Enum.join(".") |> (fn "" -> nil - string -> "+" <> string + string -> "+" <> String.replace(string, identifier_filter, "-") end).() - branch_name = - with {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]), - branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name, - true <- branch_name != "master" do - branch_name = - String.trim(branch_name) - |> String.replace(~r/[^0-9a-z\-\.]+/i, "-") - - "-" <> branch_name - end - - [version, git_pre_release, branch_name, build] + [version, git_pre_release, branch_name, build_metadata] |> Enum.filter(fn string -> string && string != "" end) |> Enum.join() end |