diff --git a/internal/releaser/github/github.go b/internal/releaser/github/github.go index 5eb61c4..41e1db0 100644 --- a/internal/releaser/github/github.go +++ b/internal/releaser/github/github.go @@ -113,45 +113,28 @@ func (g Client) CreateRelease(releaseVersion *shared.ReleaseVersion, generatedCh } // UploadAssets uploads specified assets -func (g Client) UploadAssets(assets []config.Asset) error { - for _, asset := range assets { - if asset.Compress { - zipName, err := util.ZipFile(g.config.Repo, asset.Name) - if err != nil { - return err - } +func (g Client) UploadAssets(repoDir string, assets []config.Asset) error { + filesToUpload, err := util.PrepareAssets(repoDir, assets) + if err != nil { + return err + } + for _, f := range filesToUpload { - file, err := os.Open(g.config.Repo + zipName) - if err != nil { - return err - } - defer file.Close() + file, err := os.Open(*f) + if err != nil { + return err + } - _, resp, err := g.client.Repositories.UploadReleaseAsset(g.context, g.config.User, g.config.Repo, *g.release.ID, &github.UploadOptions{Name: zipName}, file) - if err != nil { - return err - } + _, resp, err := g.client.Repositories.UploadReleaseAsset(g.context, g.config.User, g.config.Repo, *g.release.ID, &github.UploadOptions{Name: ""}, file) + if err != nil { + log.Debug("lol") + return err + } - if resp.StatusCode >= http.StatusBadRequest { - return fmt.Errorf("releaser: github: Could not upload asset %s: %s", zipName, resp.Status) - } - - } else { - file, err := os.Open(asset.Name) - if err != nil { - return err - } - defer file.Close() - - _, resp, err := g.client.Repositories.UploadReleaseAsset(g.context, g.config.User, g.config.Repo, *g.release.ID, &github.UploadOptions{Name: file.Name()}, file) - if err != nil { - return err - } - - if resp.StatusCode >= http.StatusBadRequest { - return fmt.Errorf("releaser: github: Could not upload asset %s: %s", file.Name(), resp.Status) - } + if resp.StatusCode >= http.StatusBadRequest { + return fmt.Errorf("releaser: github: Could not upload asset %s: %s", file.Name(), resp.Status) } } + return nil } diff --git a/internal/releaser/releaser.go b/internal/releaser/releaser.go index 0ee2662..5d82da3 100644 --- a/internal/releaser/releaser.go +++ b/internal/releaser/releaser.go @@ -19,7 +19,7 @@ type Releasers struct { type Releaser interface { ValidateConfig() error CreateRelease(*shared.ReleaseVersion, *shared.GeneratedChangelog) error - UploadAssets(assets []config.Asset) error + UploadAssets(repoDir string, assets []config.Asset) error GetCommitURL() string GetCompareURL(oldVersion, newVersion string) string } diff --git a/pkg/semanticrelease/semantic-release.go b/pkg/semanticrelease/semantic-release.go index ec96353..99f86d5 100644 --- a/pkg/semanticrelease/semantic-release.go +++ b/pkg/semanticrelease/semantic-release.go @@ -9,6 +9,7 @@ import ( "github.com/Nightapes/go-semantic-release/internal/changelog" "github.com/Nightapes/go-semantic-release/internal/gitutil" "github.com/Nightapes/go-semantic-release/internal/releaser" + "github.com/Nightapes/go-semantic-release/internal/releaser/util" "github.com/Nightapes/go-semantic-release/internal/shared" "github.com/Nightapes/go-semantic-release/pkg/config" log "github.com/sirupsen/logrus" @@ -245,11 +246,21 @@ func (s *SemanticRelease) Release(force bool) error { return err } - if err = releaser.UploadAssets(s.config.Assets); err != nil { + if err = releaser.UploadAssets(s.repository, s.config.Assets); err != nil { return err } return nil } +// ZipFiles zip files configured in release config +func (s *SemanticRelease) ZipFiles() error { + for _, file := range s.config.Assets { if file.Compress { + if _, err := util.PrepareAssets(s.repository, s.config.Assets); err != nil { + return err + } + } + } + return nil +}