github.com/drone/runner-go@v1.12.0/environ/semver.go (about)

     1  // Copyright 2019 Drone.IO Inc. All rights reserved.
     2  // Use of this source code is governed by the Polyform License
     3  // that can be found in the LICENSE file.
     4  
     5  package environ
     6  
     7  import (
     8  	"fmt"
     9  	"strings"
    10  
    11  	"github.com/coreos/go-semver/semver"
    12  )
    13  
    14  // helper function returns a list of environment variables
    15  // that represent the semantic version.
    16  func versions(s string) map[string]string {
    17  	env := map[string]string{}
    18  
    19  	s = strings.TrimPrefix(s, "v")
    20  	version, err := semver.NewVersion(s)
    21  	if err != nil {
    22  		env["DRONE_SEMVER_ERROR"] = err.Error()
    23  		return env
    24  	}
    25  
    26  	env["DRONE_SEMVER"] = version.String()
    27  	env["DRONE_SEMVER_MAJOR"] = fmt.Sprint(version.Major)
    28  	env["DRONE_SEMVER_MINOR"] = fmt.Sprint(version.Minor)
    29  	env["DRONE_SEMVER_PATCH"] = fmt.Sprint(version.Patch)
    30  	if s := string(version.PreRelease); s != "" {
    31  		env["DRONE_SEMVER_PRERELEASE"] = s
    32  	}
    33  	if version.Metadata != "" {
    34  		env["DRONE_SEMVER_BUILD"] = version.Metadata
    35  	}
    36  	version.Metadata = ""
    37  	version.PreRelease = ""
    38  	env["DRONE_SEMVER_SHORT"] = version.String()
    39  	return env
    40  }