diff --git a/compress/zip.go b/compress/zip.go new file mode 100644 index 000000000..cdbe0bf08 --- /dev/null +++ b/compress/zip.go @@ -0,0 +1,7 @@ +package compress + +import "github.com/goreleaser/releaser/config" + +func ArchiveAll(version string, config config.ProjectConfig) error { + return nil +} diff --git a/config/config_test.go b/config/config_test.go index d912156be..75024fb20 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -1 +1,28 @@ package config + +import ( + "testing" + "github.com/stretchr/testify/assert" +) + +func TestFixConfig(t *testing.T) { + assert := assert.New(t) + config := fix(ProjectConfig{}) + assert.Equal("releaser", config.BinaryName) + assert.Equal("main.go", config.Main) + assert.Contains(config.FileList, "README.md") + assert.Contains(config.FileList, "LICENSE.md") + assert.Contains(config.FileList, "releaser") + assert.Contains(config.Build.Oses, "darwin") + assert.Contains(config.Build.Oses, "linux") + assert.Contains(config.Build.Arches, "386") + assert.Contains(config.Build.Arches, "amd64") +} + +func TestFixBadConfig(t *testing.T) { + assert := assert.New(t) + config := fix(ProjectConfig{ + FileList: []string{"README.txt"}, + }) + assert.Contains(config.FileList, "releaser") +} \ No newline at end of file diff --git a/main.go b/main.go index 428d6c76a..a01ded3ad 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,8 @@ import ( "github.com/goreleaser/releaser/build" "github.com/goreleaser/releaser/config" "github.com/goreleaser/releaser/git" + "github.com/goreleaser/releaser/compress" + "github.com/goreleaser/releaser/release" ) var version = "none" @@ -14,19 +16,34 @@ var version = "none" func main() { config, err := config.Load("goreleaser.yml") if err != nil { - panic(err) + log.Fatalln("Failed to load goreleaser.yml", err.Error()) } tag, err := git.CurrentTag() if err != nil { - panic(err) + log.Fatalln("Failed to get current tag name", err.Error()) } - previousTag, err := git.PreviousTag() - diff, err := git.Log(previousTag, tag) - if err != nil { - panic(err) - } - log.Println(diff) fmt.Println("Building", tag, "...") err = build.Build(tag, config) - fmt.Println(err) + if err != nil { + log.Fatalln("Failed to diff current and previous tags", err.Error()) + } + err = compress.ArchiveAll(version, config) + if err != nil { + log.Fatalln("Failed to create archives", err.Error()) + } + previousTag, err := git.PreviousTag() + if err != nil { + log.Fatalln("Failed to get previous tag name", err.Error()) + } + diff, err := git.Log(previousTag, tag) + if err != nil { + log.Fatalln("Failed to diff current and previous tags", err.Error()) + } + err = release.Release(version, diff, config) + if err != nil { + log.Fatalln("Failed to create the GitHub release", err.Error()) + } + if config.Brew.Repo != "" { + // release to brew + } } diff --git a/release/release.go b/release/release.go new file mode 100644 index 000000000..747347d02 --- /dev/null +++ b/release/release.go @@ -0,0 +1,8 @@ +package release + +import "github.com/goreleaser/releaser/config" + +func Release(version, diff string, config config.ProjectConfig) error { + return nil +} +