mirror of
https://github.com/apricote/releaser-pleaser.git
synced 2026-02-07 18:27:03 +00:00
refactoring: previous release tags
This commit is contained in:
parent
9f7c59ce08
commit
9444ea9915
4 changed files with 150 additions and 94 deletions
|
|
@ -8,29 +8,20 @@ import (
|
|||
"github.com/leodido/go-conventionalcommits"
|
||||
)
|
||||
|
||||
func NextVersion(latestTag *Tag, stableTag *Tag, versionBump conventionalcommits.VersionBump, nextVersionType NextVersionType) (string, error) {
|
||||
// TODO: Validate for versioning after pre-releases
|
||||
latestVersion := "v0.0.0"
|
||||
if latestTag != nil {
|
||||
latestVersion = latestTag.Name
|
||||
}
|
||||
stableVersion := "v0.0.0"
|
||||
if stableTag != nil {
|
||||
stableVersion = stableTag.Name
|
||||
}
|
||||
type Releases struct {
|
||||
Latest *Tag
|
||||
Stable *Tag
|
||||
}
|
||||
|
||||
// The lib can not handle v prefixes
|
||||
latestVersion = strings.TrimPrefix(latestVersion, "v")
|
||||
stableVersion = strings.TrimPrefix(stableVersion, "v")
|
||||
|
||||
latest, err := semver.Parse(latestVersion)
|
||||
func (r Releases) NextVersion(versionBump conventionalcommits.VersionBump, nextVersionType NextVersionType) (string, error) {
|
||||
latest, err := parseSemverWithDefault(r.Latest)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", fmt.Errorf("failed to parse latest version: %w", err)
|
||||
}
|
||||
|
||||
stable, err := semver.Parse(stableVersion)
|
||||
stable, err := parseSemverWithDefault(r.Stable)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", fmt.Errorf("failed to parse stable version: %w", err)
|
||||
}
|
||||
|
||||
next := stable // Copy all fields
|
||||
|
|
@ -99,3 +90,20 @@ func setPRVersion(version *semver.Version, prType string, count uint64) {
|
|||
{VersionNum: count, IsNum: true},
|
||||
}
|
||||
}
|
||||
|
||||
func parseSemverWithDefault(tag *Tag) (semver.Version, error) {
|
||||
version := "v0.0.0"
|
||||
if tag != nil {
|
||||
version = tag.Name
|
||||
}
|
||||
|
||||
// The lib can not handle v prefixes
|
||||
version = strings.TrimPrefix(version, "v")
|
||||
|
||||
parsedVersion, err := semver.Parse(version)
|
||||
if err != nil {
|
||||
return semver.Version{}, fmt.Errorf("failed to parse version %q: %w", version, err)
|
||||
}
|
||||
|
||||
return parsedVersion, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue