You've already forked go-semantic-release
Merge work from development #1
@@ -10,7 +10,7 @@ import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
//ProviderConfig struct
|
||||
// ProviderConfig struct
|
||||
type ProviderConfig struct {
|
||||
IsPR bool
|
||||
PR string
|
||||
@@ -23,12 +23,12 @@ type ProviderConfig struct {
|
||||
Name string
|
||||
}
|
||||
|
||||
//Service interface
|
||||
// Service interface
|
||||
type Service interface {
|
||||
detect(envs map[string]string) (*ProviderConfig, error)
|
||||
}
|
||||
|
||||
//ReadAllEnvs as a map
|
||||
// ReadAllEnvs as a map
|
||||
func ReadAllEnvs() map[string]string {
|
||||
envs := map[string]string{}
|
||||
for _, pair := range os.Environ() {
|
||||
@@ -38,13 +38,14 @@ func ReadAllEnvs() map[string]string {
|
||||
return envs
|
||||
}
|
||||
|
||||
//GetCIProvider get provider
|
||||
// GetCIProvider get provider
|
||||
func GetCIProvider(gitUtil *gitutil.GitUtil, configCheck bool, envs map[string]string) (*ProviderConfig, error) {
|
||||
|
||||
services := []Service{
|
||||
Travis{},
|
||||
GithubActions{},
|
||||
GitlabCI{},
|
||||
WoodpeckerCI{},
|
||||
Git{gitUtil: gitUtil}, // Git must be the last option to check
|
||||
}
|
||||
|
||||
|
||||
42
internal/ci/woodpecker.go
Normal file
42
internal/ci/woodpecker.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package ci
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// Travis struct
|
||||
type WoodpeckerCI struct{}
|
||||
|
||||
// Detect if on travis
|
||||
func (t WoodpeckerCI) detect(envs map[string]string) (*ProviderConfig, error) {
|
||||
|
||||
if envs["CI"] != "woodpecker" {
|
||||
return nil, fmt.Errorf("not running on woodpecker")
|
||||
}
|
||||
|
||||
isPR := false
|
||||
|
||||
value := envs["CI_COMMIT_PULL_REQUEST"]
|
||||
pr := ""
|
||||
|
||||
if value == "" {
|
||||
log.Debugf("CI_COMMIT_PULL_REQUEST=%s, not running on pr", value)
|
||||
} else {
|
||||
isPR = true
|
||||
pr = value
|
||||
}
|
||||
|
||||
return &ProviderConfig{
|
||||
Service: "woodpecker",
|
||||
Name: "Woodpecker CI",
|
||||
Commit: envs["CI_COMMIT_SHA"],
|
||||
Tag: envs["CI_COMMIT_TAG"],
|
||||
BuildURL: envs["CI_PIPELINE_URL"],
|
||||
Branch: envs["CI_COMMIT_BRANCH"],
|
||||
IsPR: isPR,
|
||||
PR: pr,
|
||||
PRBranch: envs["CI_COMMIT_SOURCE_BRANCH"],
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user