Merge branch 'master' of github.com:Nightapes/go-semantic-release into remove/draft

This commit is contained in:
fwiedmann
2019-08-22 00:12:24 +02:00
parent 2eb64f153a
commit a2fc03c64d
10 changed files with 128 additions and 19 deletions

View File

@@ -42,6 +42,7 @@ func GetCIProvider(gitUtil *gitutil.GitUtil, envs map[string]string) (*ProviderC
services := []Service{
Travis{},
GithubActions{},
Git{gitUtil: gitUtil}, // GIt must be the last option to check
}

View File

@@ -89,6 +89,28 @@ func TestCi(t *testing.T) {
result: &ci.ProviderConfig{IsPR: false, PR: "", PRBranch: "", Branch: "master", Tag: "TAG", Commit: "190bfd6aa60022afd0ef830342cfb07e33c45f37", BuildURL: "https://travis-ci.com/owner/repo/builds/1234", Service: "travis", Name: "Travis CI"},
hasError: false,
},
{
service: "Github Actions PR",
envs: map[string]string{
"GITHUB_EVENT_NAME": "pull_request",
"GITHUB_SHA": "190bfd6aa60022afd0ef830342cfb07e33c45f37",
"GITHUB_REF": "master",
"GITHUB_ACTION": "action",
},
result: &ci.ProviderConfig{IsPR: true, PR: "", PRBranch: "", Branch: "master", Tag: "", Commit: "190bfd6aa60022afd0ef830342cfb07e33c45f37", BuildURL: "", Service: "GithubActions", Name: "GithubActions CI"},
hasError: false,
},
{
service: "Github Actions Push",
envs: map[string]string{
"GITHUB_EVENT_NAME": "push",
"GITHUB_SHA": "190bfd6aa60022afd0ef830342cfb07e33c45f37",
"GITHUB_REF": "refs/heads/feature-branch-1",
"GITHUB_ACTION": "action",
},
result: &ci.ProviderConfig{IsPR: false, PR: "", PRBranch: "", Branch: "feature-branch-1", Tag: "", Commit: "190bfd6aa60022afd0ef830342cfb07e33c45f37", BuildURL: "", Service: "GithubActions", Name: "GithubActions CI"},
hasError: false,
},
}
for _, config := range testConfigs {

View File

@@ -0,0 +1,43 @@
package ci
import (
"fmt"
"strings"
log "github.com/sirupsen/logrus"
)
//GithubActions struct
type GithubActions struct{}
//Detect if on GithubActions
func (t GithubActions) detect(envs map[string]string) (*ProviderConfig, error) {
if _, exists := envs["GITHUB_ACTION"]; !exists {
return nil, fmt.Errorf("not running on Github Actions")
}
isPR := false
value := envs["GITHUB_EVENT_NAME"]
if value == "pull_request" {
isPR = true
} else {
log.Debugf("GITHUB_EVENT_NAME=%s, not running on pr", value)
}
branch := envs["GITHUB_REF"]
if strings.HasPrefix(envs["GITHUB_REF"], "refs/heads/") {
branch = strings.Replace(branch, "refs/heads/", "", 1)
}
return &ProviderConfig{
Service: "GithubActions",
Name: "GithubActions CI",
Commit: envs["GITHUB_SHA"],
Branch: branch,
IsPR: isPR,
}, nil
}