mirror of
https://github.com/goreleaser/goreleaser.git
synced 2026-06-19 23:24:39 +02:00
config
This commit is contained in:
2 files changed
+27
-22
No files matched your search
+23
-20
@@ -34,6 +34,11 @@ type GitInfo struct {
|
|||||||
Diff string
|
Diff string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ArchiveConfig
|
||||||
|
type ArchiveConfig struct {
|
||||||
|
Format string
|
||||||
|
}
|
||||||
|
|
||||||
// ProjectConfig includes all project configuration
|
// ProjectConfig includes all project configuration
|
||||||
type ProjectConfig struct {
|
type ProjectConfig struct {
|
||||||
Repo string
|
Repo string
|
||||||
@@ -43,10 +48,27 @@ type ProjectConfig struct {
|
|||||||
Token string `yaml:"-"`
|
Token string `yaml:"-"`
|
||||||
Build BuildConfig
|
Build BuildConfig
|
||||||
Git GitInfo `yaml:"-"`
|
Git GitInfo `yaml:"-"`
|
||||||
|
Archive ArchiveConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
var defaults = ProjectConfig{
|
||||||
|
Token: os.Getenv("GITHUB_TOKEN"),
|
||||||
|
Build: BuildConfig{
|
||||||
|
Main: "main.go",
|
||||||
|
Oses: []string{"linux", "darwin"},
|
||||||
|
Arches: []string{"amd64", "386"},
|
||||||
|
},
|
||||||
|
Brew: Homebrew{
|
||||||
|
Token: os.Getenv("GITHUB_TOKEN"),
|
||||||
|
},
|
||||||
|
Archive: ArchiveConfig{
|
||||||
|
Format: "tar.gz",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load config file
|
// Load config file
|
||||||
func Load(file string) (config ProjectConfig, err error) {
|
func Load(file string) (ProjectConfig, error) {
|
||||||
|
var config = defaults
|
||||||
data, err := ioutil.ReadFile(file)
|
data, err := ioutil.ReadFile(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return config, err
|
return config, err
|
||||||
@@ -54,7 +76,6 @@ func Load(file string) (config ProjectConfig, err error) {
|
|||||||
if err := yaml.Unmarshal(data, &config); err != nil {
|
if err := yaml.Unmarshal(data, &config); err != nil {
|
||||||
return config, err
|
return config, err
|
||||||
}
|
}
|
||||||
config.fillBasicData()
|
|
||||||
if err := config.fillFiles(); err != nil {
|
if err := config.fillFiles(); err != nil {
|
||||||
return config, err
|
return config, err
|
||||||
}
|
}
|
||||||
@@ -90,24 +111,6 @@ func (config *ProjectConfig) fillFiles() (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *ProjectConfig) fillBasicData() {
|
|
||||||
if config.Token == "" {
|
|
||||||
config.Token = os.Getenv("GITHUB_TOKEN")
|
|
||||||
}
|
|
||||||
if config.Brew.Repo != "" {
|
|
||||||
config.Brew.Token = config.Token
|
|
||||||
}
|
|
||||||
if config.Build.Main == "" {
|
|
||||||
config.Build.Main = "main.go"
|
|
||||||
}
|
|
||||||
if len(config.Build.Oses) == 0 {
|
|
||||||
config.Build.Oses = []string{"linux", "darwin"}
|
|
||||||
}
|
|
||||||
if len(config.Build.Arches) == 0 {
|
|
||||||
config.Build.Arches = []string{"amd64", "386"}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (config *ProjectConfig) fillGitData() (err error) {
|
func (config *ProjectConfig) fillGitData() (err error) {
|
||||||
tag, err := git.CurrentTag()
|
tag, err := git.CurrentTag()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -5,14 +5,16 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"gopkg.in/yaml.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestFillBasicData(t *testing.T) {
|
func TestFillBasicData(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
config := ProjectConfig{}
|
config := defaults
|
||||||
config.fillBasicData()
|
|
||||||
|
|
||||||
|
assert.NoError(yaml.Unmarshal([]byte{}, &config))
|
||||||
assert.Equal("main.go", config.Build.Main)
|
assert.Equal("main.go", config.Build.Main)
|
||||||
|
assert.Equal("tar.gz", config.Archive.Format)
|
||||||
assert.Contains(config.Build.Oses, "darwin")
|
assert.Contains(config.Build.Oses, "darwin")
|
||||||
assert.Contains(config.Build.Oses, "linux")
|
assert.Contains(config.Build.Oses, "linux")
|
||||||
assert.Contains(config.Build.Arches, "386")
|
assert.Contains(config.Build.Arches, "386")
|
||||||
|
|||||||
Reference in new issue
Block a user