magefiles/build/variables.go (61 lines of code) (raw):

package build import ( "fmt" "io" "github.com/magefile/mage/sh" "gitlab.com/gitlab-org/gitlab-runner/magefiles/mageutils" ) const ( AppName = "gitlab-runner" ) var versionOnce mageutils.Once[string] func Version() string { return versionOnce.Do(func() (string, error) { return sh.Output("sh", "-c", "./ci/version") }) } func RefTag() string { return mageutils.EnvOrDefault("CI_COMMIT_TAG", "bleeding") } var latestStableTagOnce mageutils.Once[string] func LatestStableTag() string { return latestStableTagOnce.Do(func() (string, error) { return sh.Output("sh", "-c", "git -c versionsort.prereleaseSuffix=\"-rc\" -c versionsort.prereleaseSuffix=\"-RC\" tag -l \"v*.*.*\" | sort -rV | awk '!/rc/' | head -n 1") }) } var isLatestOnce mageutils.Once[bool] func IsLatest() bool { return isLatestOnce.Do(func() (bool, error) { _, err := sh.Exec( nil, io.Discard, io.Discard, "git", "describe", "--exact-match", "--match", LatestStableTag(), ) return err == nil, nil }) } var revisionOnce mageutils.Once[string] func Revision() string { return revisionOnce.Do(func() (string, error) { out, err := sh.Output("git", "rev-parse", "--short=8", "HEAD") if err != nil { return "", err } if out == "" { out = "unknown" } return out, nil }) } func ReleaseArtifactsPath(f string) string { return fmt.Sprintf("out/release_artifacts/%s.json", f) } func IsMainBranch() bool { return mageutils.Env("CI_COMMIT_BRANCH") == mageutils.Env("CI_DEFAULT_BRANCH") && mageutils.Env("CI_COMMIT_BRANCH") != "" }