Merge branch '1048-semver-format-compliance-backport' into 'master'
Fixed version parsing in pleroma_ctl (backport) See merge request pleroma/pleroma!1508
This commit is contained in:
commit
cca9d64cb8
@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
### Fixed
|
||||||
|
- `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`
|
||||||
|
|
||||||
## [1.0.2] - 2019-07-28
|
## [1.0.2] - 2019-07-28
|
||||||
### Fixed
|
### Fixed
|
||||||
- Not being able to pin unlisted posts
|
- Not being able to pin unlisted posts
|
||||||
|
55
mix.exs
55
mix.exs
@ -175,10 +175,14 @@ defmodule Pleroma.Mixfile do
|
|||||||
# Builds a version string made of:
|
# Builds a version string made of:
|
||||||
# * the application version
|
# * the application version
|
||||||
# * a pre-release if ahead of the tag: the describe string (-count-commithash)
|
# * 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
|
# * a build name if `PLEROMA_BUILD_NAME` or `:pleroma, :build_name` is defined
|
||||||
# * the mix environment if different than prod
|
# * the mix environment if different than prod
|
||||||
defp version(version) do
|
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} =
|
{git_tag, git_pre_release} =
|
||||||
with {tag, 0} <-
|
with {tag, 0} <-
|
||||||
System.cmd("git", ["describe", "--tags", "--abbrev=0"], stderr_to_stdout: true),
|
System.cmd("git", ["describe", "--tags", "--abbrev=0"], stderr_to_stdout: true),
|
||||||
@ -199,6 +203,19 @@ defmodule Pleroma.Mixfile do
|
|||||||
)
|
)
|
||||||
end
|
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 =
|
build_name =
|
||||||
cond do
|
cond do
|
||||||
name = Application.get_env(:pleroma, :build_name) -> name
|
name = Application.get_env(:pleroma, :build_name) -> name
|
||||||
@ -207,28 +224,26 @@ defmodule Pleroma.Mixfile do
|
|||||||
end
|
end
|
||||||
|
|
||||||
env_name = if Mix.env() != :prod, do: to_string(Mix.env())
|
env_name = if Mix.env() != :prod, do: to_string(Mix.env())
|
||||||
|
env_override = System.get_env("PLEROMA_BUILD_ENV")
|
||||||
|
|
||||||
build =
|
env_name =
|
||||||
[build_name, env_name]
|
case env_override do
|
||||||
|> Enum.filter(fn string -> string && string != "" end)
|
nil -> env_name
|
||||||
|> Enum.join("-")
|
env_override when env_override in ["", "prod"] -> nil
|
||||||
|> (fn
|
env_override -> env_override
|
||||||
"" -> nil
|
|
||||||
string -> "+" <> string
|
|
||||||
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
|
end
|
||||||
|
|
||||||
[version, git_pre_release, branch_name, build]
|
# Build metadata, denoted with a plus sign
|
||||||
|
build_metadata =
|
||||||
|
[build_name, env_name]
|
||||||
|
|> Enum.filter(fn string -> string && string != "" end)
|
||||||
|
|> Enum.join(".")
|
||||||
|
|> (fn
|
||||||
|
"" -> nil
|
||||||
|
string -> "+" <> String.replace(string, identifier_filter, "-")
|
||||||
|
end).()
|
||||||
|
|
||||||
|
[version, git_pre_release, branch_name, build_metadata]
|
||||||
|> Enum.filter(fn string -> string && string != "" end)
|
|> Enum.filter(fn string -> string && string != "" end)
|
||||||
|> Enum.join()
|
|> Enum.join()
|
||||||
end
|
end
|
||||||
|
@ -30,12 +30,15 @@ detect_flavour() {
|
|||||||
|
|
||||||
detect_branch() {
|
detect_branch() {
|
||||||
version="$(cut -d' ' -f2 <"$RELEASE_ROOT"/releases/start_erl.data)"
|
version="$(cut -d' ' -f2 <"$RELEASE_ROOT"/releases/start_erl.data)"
|
||||||
branch="$(echo "$version" | cut -d'-' -f 4)"
|
# Expected format: major.minor.patch_version(-number_of_commits_ahead_of_tag-gcommit_hash).branch
|
||||||
|
branch="$(echo "$version" | cut -d'.' -f 4)"
|
||||||
if [ "$branch" = "develop" ]; then
|
if [ "$branch" = "develop" ]; then
|
||||||
echo "develop"
|
echo "develop"
|
||||||
elif [ "$branch" = "" ]; then
|
elif [ "$branch" = "" ]; then
|
||||||
echo "master"
|
echo "master"
|
||||||
else
|
else
|
||||||
|
# Note: branch name in version is of SemVer format and may only contain [0-9a-zA-Z-] symbols —
|
||||||
|
# if supporting releases for more branches, need to ensure they contain only these symbols.
|
||||||
echo "Releases are built only for master and develop branches" >&2
|
echo "Releases are built only for master and develop branches" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user