|
|
|
// Copyright 2019 Drone.IO Inc. All rights reserved.
|
|
|
|
// Use of this source code is governed by the Polyform License
|
|
|
|
// that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package environ
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
"github.com/coreos/go-semver/semver"
|
|
|
|
)
|
|
|
|
|
|
|
|
// helper function returns a list of environment variables
|
|
|
|
// that represent the semantic version.
|
|
|
|
func versions(s string) map[string]string {
|
|
|
|
env := map[string]string{}
|
|
|
|
|
|
|
|
s = strings.TrimPrefix(s, "v")
|
|
|
|
version, err := semver.NewVersion(s)
|
|
|
|
if err != nil {
|
|
|
|
env["DRONE_SEMVER_ERROR"] = err.Error()
|
|
|
|
return env
|
|
|
|
}
|
|
|
|
|
|
|
|
env["DRONE_SEMVER"] = version.String()
|
|
|
|
env["DRONE_SEMVER_MAJOR"] = fmt.Sprint(version.Major)
|
|
|
|
env["DRONE_SEMVER_MINOR"] = fmt.Sprint(version.Minor)
|
|
|
|
env["DRONE_SEMVER_PATCH"] = fmt.Sprint(version.Patch)
|
|
|
|
if s := string(version.PreRelease); s != "" {
|
|
|
|
env["DRONE_SEMVER_PRERELEASE"] = s
|
|
|
|
}
|
|
|
|
if version.Metadata != "" {
|
|
|
|
env["DRONE_SEMVER_BUILD"] = version.Metadata
|
|
|
|
}
|
|
|
|
version.Metadata = ""
|
|
|
|
version.PreRelease = ""
|
|
|
|
env["DRONE_SEMVER_SHORT"] = version.String()
|
|
|
|
return env
|
|
|
|
}
|