mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 05:42:28 +08:00

* cleanup dead code * add tests and rewrite publish grafanacom steps to reuse * add pkg/build tests; don't upload CDN assets on grafana releases
73 lines
1.7 KiB
Go
73 lines
1.7 KiB
Go
package gcom
|
|
|
|
import (
|
|
"fmt"
|
|
"net/url"
|
|
"path"
|
|
"strings"
|
|
|
|
"github.com/grafana/grafana/pkg/build/versions"
|
|
)
|
|
|
|
func PackageName(grafana, distro, arch, version, ext string, musl bool, raspberryPi bool) string {
|
|
v := versions.ParseSemver(version)
|
|
|
|
if raspberryPi {
|
|
grafana += "-rpi"
|
|
}
|
|
|
|
versionString := strings.Join([]string{v.Major, v.Minor, v.Patch}, ".")
|
|
fmt.Println("Version string:", versionString)
|
|
if distro == "deb" {
|
|
if v.BuildMetadata != "" {
|
|
versionString += "+" + strings.ReplaceAll(v.BuildMetadata, "-", "~")
|
|
}
|
|
|
|
if v.Prerelease != "" {
|
|
versionString += "~" + v.Prerelease
|
|
}
|
|
|
|
return strings.Join([]string{grafana, versionString, arch}, "_") + "." + ext
|
|
}
|
|
|
|
if distro == "rhel" {
|
|
if v.BuildMetadata != "" {
|
|
versionString += "+" + strings.ReplaceAll(v.BuildMetadata, "-", "~")
|
|
}
|
|
|
|
if v.Prerelease != "" {
|
|
versionString += "~" + v.Prerelease
|
|
}
|
|
|
|
versionString += "-1"
|
|
|
|
// Notable difference between our deb naming and our RPM naming: the file ends with `.arch.ext`, not
|
|
// `_arch.ext`.
|
|
return strings.Join([]string{grafana, versionString}, "-") + "." + arch + "." + ext
|
|
}
|
|
|
|
if v.Prerelease != "" {
|
|
versionString += "-" + v.Prerelease
|
|
}
|
|
|
|
if v.BuildMetadata != "" {
|
|
versionString += "+" + v.BuildMetadata
|
|
}
|
|
|
|
if musl {
|
|
arch += "-musl"
|
|
}
|
|
|
|
// grafana-enterprise-1.2.3+example-01.linux-amd64.tar.gz
|
|
return fmt.Sprintf("%s-%s.%s-%s.%s", grafana, versionString, distro, arch, ext)
|
|
}
|
|
|
|
func GetURL(baseURL *url.URL, version, grafana, distro, arch, ext string, musl, raspberryPi bool) *url.URL {
|
|
packageName := PackageName(grafana, distro, arch, version, ext, musl, raspberryPi)
|
|
return &url.URL{
|
|
Host: baseURL.Host,
|
|
Scheme: baseURL.Scheme,
|
|
Path: path.Join(baseURL.Path, packageName),
|
|
}
|
|
}
|