Fix Invalid SemVer version generation
when the current branch does not have commits ahead of tag/checked out on a tag
This commit is contained in:
parent
0eff6349a0
commit
8998620d71
2 changed files with 22 additions and 5 deletions
|
@ -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/).
|
||||||
|
|
||||||
|
## [1.0.4] - 2019-08-01
|
||||||
|
### Fixed
|
||||||
|
- Invalid SemVer version generation, when the current branch does not have commits ahead of tag/checked out on a tag
|
||||||
|
|
||||||
## [1.0.3] - 2019-07-31
|
## [1.0.3] - 2019-07-31
|
||||||
### Security
|
### Security
|
||||||
- OStatus: eliminate the possibility of a protocol downgrade attack.
|
- OStatus: eliminate the possibility of a protocol downgrade attack.
|
||||||
|
|
23
mix.exs
23
mix.exs
|
@ -189,12 +189,13 @@ defp version(version) do
|
||||||
tag = String.trim(tag),
|
tag = String.trim(tag),
|
||||||
{describe, 0} <- System.cmd("git", ["describe", "--tags", "--abbrev=8"]),
|
{describe, 0} <- System.cmd("git", ["describe", "--tags", "--abbrev=8"]),
|
||||||
describe = String.trim(describe),
|
describe = String.trim(describe),
|
||||||
ahead <- String.replace(describe, tag, "") do
|
ahead <- String.replace(describe, tag, ""),
|
||||||
|
ahead <- String.trim_leading(ahead, "-") do
|
||||||
{String.replace_prefix(tag, "v", ""), if(ahead != "", do: String.trim(ahead))}
|
{String.replace_prefix(tag, "v", ""), if(ahead != "", do: String.trim(ahead))}
|
||||||
else
|
else
|
||||||
_ ->
|
_ ->
|
||||||
{commit_hash, 0} = System.cmd("git", ["rev-parse", "--short", "HEAD"])
|
{commit_hash, 0} = System.cmd("git", ["rev-parse", "--short", "HEAD"])
|
||||||
{nil, "-0-g" <> String.trim(commit_hash)}
|
{nil, "0-g" <> String.trim(commit_hash)}
|
||||||
end
|
end
|
||||||
|
|
||||||
if git_tag && version != git_tag do
|
if git_tag && version != git_tag do
|
||||||
|
@ -206,14 +207,15 @@ defp version(version) do
|
||||||
# Branch name as pre-release version component, denoted with a dot
|
# Branch name as pre-release version component, denoted with a dot
|
||||||
branch_name =
|
branch_name =
|
||||||
with {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]),
|
with {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]),
|
||||||
|
branch_name <- String.trim(branch_name),
|
||||||
branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name,
|
branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name,
|
||||||
true <- branch_name != "master" do
|
true <- branch_name not in ["master", "HEAD"] do
|
||||||
branch_name =
|
branch_name =
|
||||||
branch_name
|
branch_name
|
||||||
|> String.trim()
|
|> String.trim()
|
||||||
|> String.replace(identifier_filter, "-")
|
|> String.replace(identifier_filter, "-")
|
||||||
|
|
||||||
"." <> branch_name
|
branch_name
|
||||||
end
|
end
|
||||||
|
|
||||||
build_name =
|
build_name =
|
||||||
|
@ -233,6 +235,17 @@ defp version(version) do
|
||||||
env_override -> env_override
|
env_override -> env_override
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Pre-release version, denoted by appending a hyphen
|
||||||
|
# and a series of dot separated identifiers
|
||||||
|
pre_release =
|
||||||
|
[git_pre_release, branch_name]
|
||||||
|
|> Enum.filter(fn string -> string && string != "" end)
|
||||||
|
|> Enum.join(".")
|
||||||
|
|> (fn
|
||||||
|
"" -> nil
|
||||||
|
string -> "-" <> String.replace(string, identifier_filter, "-")
|
||||||
|
end).()
|
||||||
|
|
||||||
# Build metadata, denoted with a plus sign
|
# Build metadata, denoted with a plus sign
|
||||||
build_metadata =
|
build_metadata =
|
||||||
[build_name, env_name]
|
[build_name, env_name]
|
||||||
|
@ -243,7 +256,7 @@ defp version(version) do
|
||||||
string -> "+" <> String.replace(string, identifier_filter, "-")
|
string -> "+" <> String.replace(string, identifier_filter, "-")
|
||||||
end).()
|
end).()
|
||||||
|
|
||||||
[version, git_pre_release, branch_name, build_metadata]
|
[version, pre_release, build_metadata]
|
||||||
|> Enum.filter(fn string -> string && string != "" end)
|
|> Enum.filter(fn string -> string && string != "" end)
|
||||||
|> Enum.join()
|
|> Enum.join()
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue