diff --git a/releases/git.go b/releases/git.go index d88c6d9..e19ec78 100644 --- a/releases/git.go +++ b/releases/git.go @@ -30,6 +30,9 @@ type GitMetadata struct { // IsTaggedRelease indicates if the build is for a versioned tag IsTaggedRelease bool + + // Repository is the owner+name of the current repository + Repository string } func (m GitMetadata) ShouldPublishPermalink() bool { @@ -41,8 +44,9 @@ func (m GitMetadata) ShouldPublishPermalink() bool { func LoadMetadata() GitMetadata { loadMetadata.Do(func() { gitMetadata = GitMetadata{ - Version: getVersion(), - Commit: getCommit(), + Version: getVersion(), + Commit: getCommit(), + Repository: getRepository(), } gitMetadata.Permalink, gitMetadata.IsTaggedRelease = getPermalink() @@ -51,12 +55,16 @@ func LoadMetadata() GitMetadata { log.Println("Permalink:", gitMetadata.Permalink) log.Println("Version:", gitMetadata.Version) log.Println("Commit:", gitMetadata.Commit) + log.Println("Repository:", gitMetadata.Repository) }) - // Save the metadata as environment variables to use later in the CI pipeline - p, _ := ci.DetectBuildProvider() - mgx.Must(p.SetEnv("PERMALINK", gitMetadata.Permalink)) - mgx.Must(p.SetEnv("VERSION", gitMetadata.Version)) + // Workaround to avoid writing to GITHUB_ENV when building the Homebrew formula. + if gitMetadata.Repository != "Homebrew/homebrew-core" { + // Save the metadata as environment variables to use later in the CI pipeline + p, _ := ci.DetectBuildProvider() + mgx.Must(p.SetEnv("PERMALINK", gitMetadata.Permalink)) + mgx.Must(p.SetEnv("VERSION", gitMetadata.Version)) + } return gitMetadata } @@ -162,3 +170,12 @@ func getPermalink() (string, bool) { return fmt.Sprintf("%s-%s", permalinkPrefix, strings.TrimPrefix(branch, "release/")), taggedRelease } } + +func getRepository() string { + repository, ok := os.LookupEnv("GITHUB_REPOSITORY") + if !ok { + repository = "getporter/porter" + } + + return repository +}