aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Tashkinov <ivantashkinov@gmail.com>2019-07-30 15:33:51 +0300
committerIvan Tashkinov <ivantashkinov@gmail.com>2019-07-30 15:33:51 +0300
commit1e77e71fb2ee727d55bbbd52ccd17a37a7c2c405 (patch)
treeb6844a361ce5b7592d1711e42cb3c72a1e3e2426
parent7fdbef3e1b06a8eef03ee79ef587d74850510d15 (diff)
downloadpleroma-1e77e71fb2ee727d55bbbd52ccd17a37a7c2c405.tar.gz
[#1036] Fixed version parsing in pleroma_ctl.
-rw-r--r--CHANGELOG.md1
-rw-r--r--mix.exs47
2 files changed, 32 insertions, 16 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ef4456d58..cd711c891 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Metadata rendering errors resulting in the entire page being inaccessible
- Federation/MediaProxy not working with instances that have wrong certificate order
- ActivityPub S2S: remote user deletions now work the same as local user deletions.
+- `pleroma_ctl` not detecting the master branch properly. If you get "Releases are built only for master and develop branches" error when updating, please add `-` to the end of the line in `releases/start_erl.data`
### Changed
- Configuration: OpenGraph and TwitterCard providers enabled by default
diff --git a/mix.exs b/mix.exs
index 32ff66d75..a1c68051f 100644
--- a/mix.exs
+++ b/mix.exs
@@ -175,10 +175,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),
@@ -199,6 +203,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
@@ -207,28 +224,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