1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-10-30 23:58:09 +02:00

feat: remove singular archive config (#1282)

* feat: remove singular archive config

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: tests

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
This commit is contained in:
Carlos Alexandro Becker
2019-12-29 15:02:15 -03:00
committed by GitHub
parent 468401bc54
commit 8defb77b0e
10 changed files with 107 additions and 51 deletions

View File

@@ -372,9 +372,9 @@ func resolveTargetTemplate(ctx *context.Context, upload *config.Upload, artifact
if upload.Mode == ModeBinary { if upload.Mode == ModeBinary {
// TODO: multiple archives here // TODO: multiple archives here
data.Os = replace(ctx.Config.Archive.Replacements, artifact.Goos) data.Os = replace(ctx.Config.Archives[0].Replacements, artifact.Goos)
data.Arch = replace(ctx.Config.Archive.Replacements, artifact.Goarch) data.Arch = replace(ctx.Config.Archives[0].Replacements, artifact.Goarch)
data.Arm = replace(ctx.Config.Archive.Replacements, artifact.Goarm) data.Arm = replace(ctx.Config.Archives[0].Replacements, artifact.Goarm)
} }
var out bytes.Buffer var out bytes.Buffer

View File

@@ -205,7 +205,12 @@ func TestUpload(t *testing.T) {
} }
return errors.Errorf("unexpected http status code: %v", r.StatusCode) return errors.Errorf("unexpected http status code: %v", r.StatusCode)
} }
ctx := context.New(config.Project{ProjectName: "blah"}) ctx := context.New(config.Project{
ProjectName: "blah",
Archives: []config.Archive{
{},
},
})
ctx.Env["TEST_A_SECRET"] = "x" ctx.Env["TEST_A_SECRET"] = "x"
ctx.Env["TEST_A_USERNAME"] = "u2" ctx.Env["TEST_A_USERNAME"] = "u2"
ctx.Version = "2.1.0" ctx.Version = "2.1.0"

View File

@@ -7,14 +7,14 @@ import (
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
"reflect"
"strings" "strings"
"sync" "sync"
"github.com/apex/log" "github.com/apex/log"
"github.com/campoy/unique" "github.com/campoy/unique"
"github.com/mattn/go-zglob"
"github.com/goreleaser/goreleaser/internal/artifact" "github.com/goreleaser/goreleaser/internal/artifact"
"github.com/goreleaser/goreleaser/internal/deprecate"
"github.com/goreleaser/goreleaser/internal/ids" "github.com/goreleaser/goreleaser/internal/ids"
"github.com/goreleaser/goreleaser/internal/semerrgroup" "github.com/goreleaser/goreleaser/internal/semerrgroup"
"github.com/goreleaser/goreleaser/internal/tmpl" "github.com/goreleaser/goreleaser/internal/tmpl"
@@ -22,7 +22,6 @@ import (
archivelib "github.com/goreleaser/goreleaser/pkg/archive" archivelib "github.com/goreleaser/goreleaser/pkg/archive"
"github.com/goreleaser/goreleaser/pkg/config" "github.com/goreleaser/goreleaser/pkg/config"
"github.com/goreleaser/goreleaser/pkg/context" "github.com/goreleaser/goreleaser/pkg/context"
zglob "github.com/mattn/go-zglob"
) )
const ( const (
@@ -44,10 +43,7 @@ func (Pipe) String() string {
func (Pipe) Default(ctx *context.Context) error { func (Pipe) Default(ctx *context.Context) error {
var ids = ids.New("archives") var ids = ids.New("archives")
if len(ctx.Config.Archives) == 0 { if len(ctx.Config.Archives) == 0 {
ctx.Config.Archives = append(ctx.Config.Archives, ctx.Config.Archive) ctx.Config.Archives = append(ctx.Config.Archives, config.Archive{})
if !reflect.DeepEqual(ctx.Config.Archive, config.Archive{}) {
deprecate.Notice("archive")
}
} }
for i := range ctx.Config.Archives { for i := range ctx.Config.Archives {
var archive = &ctx.Config.Archives[i] var archive = &ctx.Config.Archives[i]

View File

@@ -188,6 +188,9 @@ func TestRunPipe_ModeBinary(t *testing.T) {
Username: "productionuser", Username: "productionuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION-US_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION-US_SECRET": "deployuser-secret",
@@ -229,6 +232,9 @@ func TestRunPipe_ModeArchive(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
@@ -361,6 +367,9 @@ func TestRunPipe_TargetTemplateError(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
@@ -418,6 +427,9 @@ func TestRunPipe_BadCredentials(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
@@ -476,6 +488,9 @@ func TestRunPipe_UnparsableErrorResponse(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
@@ -531,6 +546,9 @@ func TestRunPipe_UnparsableResponse(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
@@ -559,6 +577,9 @@ func TestRunPipe_FileNotFound(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
@@ -597,6 +618,9 @@ func TestRunPipe_UnparsableTarget(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
@@ -623,6 +647,9 @@ func TestRunPipe_SkipWhenPublishFalse(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
@@ -654,6 +681,9 @@ func TestRunPipe_DirUpload(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret", "ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",

View File

@@ -63,9 +63,11 @@ func TestFillPartial(t *testing.T) {
Name: "test", Name: "test",
}, },
}, },
Archive: config.Archive{ Archives: []config.Archive{
Files: []string{ {
"glob/*", Files: []string{
"glob/*",
},
}, },
}, },
Builds: []config.Build{ Builds: []config.Build{
@@ -90,7 +92,7 @@ func TestFillPartial(t *testing.T) {
}, },
} }
assert.NoError(t, Pipe{}.Run(ctx)) assert.NoError(t, Pipe{}.Run(ctx))
assert.Len(t, ctx.Config.Archive.Files, 1) assert.Len(t, ctx.Config.Archives[0].Files, 1)
assert.Equal(t, `bin.install "testreleaser"`, ctx.Config.Brews[0].Install) assert.Equal(t, `bin.install "testreleaser"`, ctx.Config.Brews[0].Install)
assert.NotEmpty(t, ctx.Config.Dockers[0].Binaries) assert.NotEmpty(t, ctx.Config.Dockers[0].Binaries)
assert.NotEmpty(t, ctx.Config.Dockers[0].Goos) assert.NotEmpty(t, ctx.Config.Dockers[0].Goos)

View File

@@ -61,7 +61,8 @@ func doRun(ctx *context.Context, client client.Client) error {
// if ctx.Config.Release.Disable { // if ctx.Config.Release.Disable {
// } // }
if ctx.Config.Archive.Format == "binary" { // TODO: multiple archives
if ctx.Config.Archives[0].Format == "binary" {
return pipe.Skip("archive format is binary") return pipe.Skip("archive format is binary")
} }

View File

@@ -101,8 +101,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@@ -145,8 +145,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@@ -188,8 +188,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitLab: config.Repo{ GitLab: config.Repo{
@@ -248,8 +248,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@@ -306,8 +306,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@@ -349,8 +349,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@@ -392,8 +392,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@@ -427,8 +427,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@@ -471,8 +471,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
Draft: true, Draft: true,
@@ -511,8 +511,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
Disable: true, Disable: true,
@@ -551,8 +551,8 @@ func Test_doRun(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "binary", {Format: "binary"},
}, },
Release: config.Release{ Release: config.Release{
Draft: true, Draft: true,
@@ -613,8 +613,8 @@ func Test_buildManifest(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@@ -652,8 +652,8 @@ func Test_buildManifest(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@@ -692,8 +692,8 @@ func Test_buildManifest(t *testing.T) {
}, },
Dist: ".", Dist: ".",
ProjectName: "run-pipe", ProjectName: "run-pipe",
Archive: config.Archive{ Archives: []config.Archive{
Format: "tar.gz", {Format: "tar.gz"},
}, },
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{

View File

@@ -123,6 +123,9 @@ func TestRunPipe_ModeBinary(t *testing.T) {
Username: "productionuser", Username: "productionuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"UPLOAD_PRODUCTION-US_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION-US_SECRET": "deployuser-secret",
@@ -164,6 +167,9 @@ func TestRunPipe_ModeArchive(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",
@@ -261,6 +267,9 @@ func TestRunPipe_TargetTemplateError(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",
@@ -313,6 +322,9 @@ func TestRunPipe_BadCredentials(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",
@@ -343,6 +355,9 @@ func TestRunPipe_FileNotFound(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",
@@ -381,6 +396,9 @@ func TestRunPipe_UnparsableTarget(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",
@@ -406,6 +424,9 @@ func TestRunPipe_SkipWhenPublishFalse(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",
@@ -437,6 +458,9 @@ func TestRunPipe_DirUpload(t *testing.T) {
Username: "deployuser", Username: "deployuser",
}, },
}, },
Archives: []config.Archive{
{},
},
}) })
ctx.Env = map[string]string{ ctx.Env = map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",

View File

@@ -358,7 +358,6 @@ type Project struct {
Brews []Homebrew `yaml:",omitempty"` Brews []Homebrew `yaml:",omitempty"`
Scoop Scoop `yaml:",omitempty"` Scoop Scoop `yaml:",omitempty"`
Builds []Build `yaml:",omitempty"` Builds []Build `yaml:",omitempty"`
Archive Archive `yaml:",omitempty"` // TODO: remove this
Archives []Archive `yaml:",omitempty"` Archives []Archive `yaml:",omitempty"`
NFPMs []NFPM `yaml:"nfpms,omitempty"` NFPMs []NFPM `yaml:"nfpms,omitempty"`
Snapcrafts []Snapcraft `yaml:",omitempty"` Snapcrafts []Snapcraft `yaml:",omitempty"`

View File

@@ -175,9 +175,13 @@ blobs:
# etc # etc
``` ```
## Expired deprecation notices
The following options were deprecated for ~6 months and are now fully removed.
### archive ### archive
> since 2019-04-16 > since 2019-04-16, removed 2019-12-27
We now allow multiple archives, so the `archive` statement will be removed. We now allow multiple archives, so the `archive` statement will be removed.
@@ -196,11 +200,6 @@ archives:
format: zip format: zip
``` ```
## Expired deprecation notices
The following options were deprecated for ~6 months and are now fully removed.
### snapcraft ### snapcraft
> since 2019-05-27, removed 2019-12-27 > since 2019-05-27, removed 2019-12-27