1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2024-12-27 01:33:39 +02:00

chore: gofumpt & lint (#2190)

Signed-off-by: Carlos Becker <caarlos0@gmail.com>
This commit is contained in:
Carlos Alexandro Becker 2021-04-25 14:20:49 -03:00 committed by GitHub
parent 5866b9cb63
commit 860b4a8f81
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
61 changed files with 721 additions and 706 deletions

View File

@ -1,3 +1,8 @@
linters: linters:
enable: enable:
- thelper - thelper
- gofumpt
- tparallel
- unconvert
- unparam
- wastedassign

View File

@ -38,14 +38,14 @@ func newBuildCmd() *buildCmd {
root := &buildCmd{} root := &buildCmd{}
// nolint: dupl // nolint: dupl
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "build", Use: "build",
Aliases: []string{"b"}, Aliases: []string{"b"},
Short: "Builds the current project", Short: "Builds the current project",
Long: `The build command allows you to execute only a subset of the pipeline, i.e. only the build step with its dependencies. Long: `The build command allows you to execute only a subset of the pipeline, i.e. only the build step with its dependencies.
It allows you to quickly check if your GoReleaser build configurations are doing what you expect. It allows you to quickly check if your GoReleaser build configurations are doing what you expect.
Finally, it allows you to generate a local build for your current machine only using the `+ "`--single-target`"+` option, and specific build IDs using the `+"`--id`"+` option. Finally, it allows you to generate a local build for your current machine only using the ` + "`--single-target`" + ` option, and specific build IDs using the ` + "`--id`" + ` option.
`, `,
SilenceUsage: true, SilenceUsage: true,
SilenceErrors: true, SilenceErrors: true,

View File

@ -18,8 +18,8 @@ type checkCmd struct {
} }
func newCheckCmd() *checkCmd { func newCheckCmd() *checkCmd {
var root = &checkCmd{} root := &checkCmd{}
var cmd = &cobra.Command{ cmd := &cobra.Command{
Use: "check", Use: "check",
Aliases: []string{"c"}, Aliases: []string{"c"},
Short: "Checks if configuration is valid", Short: "Checks if configuration is valid",
@ -31,7 +31,7 @@ func newCheckCmd() *checkCmd {
if err != nil { if err != nil {
return err return err
} }
var ctx = context.New(cfg) ctx := context.New(cfg)
ctx.Deprecated = root.deprecated ctx.Deprecated = root.deprecated
if err := ctrlc.Default.Run(ctx, func() error { if err := ctrlc.Default.Run(ctx, func() error {

View File

@ -7,31 +7,31 @@ import (
) )
func TestCheckConfig(t *testing.T) { func TestCheckConfig(t *testing.T) {
var cmd = newCheckCmd() cmd := newCheckCmd()
cmd.cmd.SetArgs([]string{"-f", "testdata/good.yml"}) cmd.cmd.SetArgs([]string{"-f", "testdata/good.yml"})
require.NoError(t, cmd.cmd.Execute()) require.NoError(t, cmd.cmd.Execute())
} }
func TestCheckConfigThatDoesNotExist(t *testing.T) { func TestCheckConfigThatDoesNotExist(t *testing.T) {
var cmd = newCheckCmd() cmd := newCheckCmd()
cmd.cmd.SetArgs([]string{"-f", "testdata/nope.yml"}) cmd.cmd.SetArgs([]string{"-f", "testdata/nope.yml"})
require.EqualError(t, cmd.cmd.Execute(), "open testdata/nope.yml: no such file or directory") require.EqualError(t, cmd.cmd.Execute(), "open testdata/nope.yml: no such file or directory")
} }
func TestCheckConfigUnmarshalError(t *testing.T) { func TestCheckConfigUnmarshalError(t *testing.T) {
var cmd = newCheckCmd() cmd := newCheckCmd()
cmd.cmd.SetArgs([]string{"-f", "testdata/unmarshal_error.yml"}) cmd.cmd.SetArgs([]string{"-f", "testdata/unmarshal_error.yml"})
require.EqualError(t, cmd.cmd.Execute(), "yaml: unmarshal errors:\n line 1: field foo not found in type config.Project") require.EqualError(t, cmd.cmd.Execute(), "yaml: unmarshal errors:\n line 1: field foo not found in type config.Project")
} }
func TestCheckConfigInvalid(t *testing.T) { func TestCheckConfigInvalid(t *testing.T) {
var cmd = newCheckCmd() cmd := newCheckCmd()
cmd.cmd.SetArgs([]string{"-f", "testdata/invalid.yml"}) cmd.cmd.SetArgs([]string{"-f", "testdata/invalid.yml"})
require.EqualError(t, cmd.cmd.Execute(), "invalid config: found 2 builds with the ID 'a', please fix your config") require.EqualError(t, cmd.cmd.Execute(), "invalid config: found 2 builds with the ID 'a', please fix your config")
} }
func TestCheckConfigDeprecated(t *testing.T) { func TestCheckConfigDeprecated(t *testing.T) {
var cmd = newCheckCmd() cmd := newCheckCmd()
cmd.cmd.SetArgs([]string{"-f", "testdata/good.yml", "--deprecated"}) cmd.cmd.SetArgs([]string{"-f", "testdata/good.yml", "--deprecated"})
require.EqualError(t, cmd.cmd.Execute(), "config is valid, but uses deprecated properties, check logs above for details") require.EqualError(t, cmd.cmd.Execute(), "config is valid, but uses deprecated properties, check logs above for details")
} }

View File

@ -17,7 +17,7 @@ func TestConfigFlagNotSetButExists(t *testing.T) {
"goreleaser.yaml", "goreleaser.yaml",
} { } {
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {
var folder = setup(t) folder := setup(t)
require.NoError(t, os.Rename( require.NoError(t, os.Rename(
filepath.Join(folder, "goreleaser.yml"), filepath.Join(folder, "goreleaser.yml"),
filepath.Join(folder, name), filepath.Join(folder, name),
@ -30,7 +30,7 @@ func TestConfigFlagNotSetButExists(t *testing.T) {
} }
func TestConfigFileDoesntExist(t *testing.T) { func TestConfigFileDoesntExist(t *testing.T) {
var folder = setup(t) folder := setup(t)
err := os.Remove(filepath.Join(folder, "goreleaser.yml")) err := os.Remove(filepath.Join(folder, "goreleaser.yml"))
require.NoError(t, err) require.NoError(t, err)
proj, err := loadConfig("") proj, err := loadConfig("")

View File

@ -10,7 +10,7 @@ import (
func TestRelease(t *testing.T) { func TestRelease(t *testing.T) {
setup(t) setup(t)
var cmd = newReleaseCmd() cmd := newReleaseCmd()
cmd.cmd.SetArgs([]string{"--snapshot", "--timeout=1m", "--parallelism=2", "--deprecated"}) cmd.cmd.SetArgs([]string{"--snapshot", "--timeout=1m", "--parallelism=2", "--deprecated"})
require.NoError(t, cmd.cmd.Execute()) require.NoError(t, cmd.cmd.Execute())
} }
@ -18,7 +18,7 @@ func TestRelease(t *testing.T) {
func TestReleaseInvalidConfig(t *testing.T) { func TestReleaseInvalidConfig(t *testing.T) {
setup(t) setup(t)
createFile(t, "goreleaser.yml", "foo: bar") createFile(t, "goreleaser.yml", "foo: bar")
var cmd = newReleaseCmd() cmd := newReleaseCmd()
cmd.cmd.SetArgs([]string{"--snapshot", "--timeout=1m", "--parallelism=2", "--deprecated"}) cmd.cmd.SetArgs([]string{"--snapshot", "--timeout=1m", "--parallelism=2", "--deprecated"})
require.EqualError(t, cmd.cmd.Execute(), "yaml: unmarshal errors:\n line 1: field foo not found in type config.Project") require.EqualError(t, cmd.cmd.Execute(), "yaml: unmarshal errors:\n line 1: field foo not found in type config.Project")
} }
@ -26,18 +26,18 @@ func TestReleaseInvalidConfig(t *testing.T) {
func TestReleaseBrokenProject(t *testing.T) { func TestReleaseBrokenProject(t *testing.T) {
setup(t) setup(t)
createFile(t, "main.go", "not a valid go file") createFile(t, "main.go", "not a valid go file")
var cmd = newReleaseCmd() cmd := newReleaseCmd()
cmd.cmd.SetArgs([]string{"--snapshot", "--timeout=1m", "--parallelism=2"}) cmd.cmd.SetArgs([]string{"--snapshot", "--timeout=1m", "--parallelism=2"})
require.EqualError(t, cmd.cmd.Execute(), "failed to parse dir: .: main.go:1:1: expected 'package', found not") require.EqualError(t, cmd.cmd.Execute(), "failed to parse dir: .: main.go:1:1: expected 'package', found not")
} }
func TestReleaseFlags(t *testing.T) { func TestReleaseFlags(t *testing.T) {
var setup = func(opts releaseOpts) *context.Context { setup := func(opts releaseOpts) *context.Context {
return setupReleaseContext(context.New(config.Project{}), opts) return setupReleaseContext(context.New(config.Project{}), opts)
} }
t.Run("snapshot", func(t *testing.T) { t.Run("snapshot", func(t *testing.T) {
var ctx = setup(releaseOpts{ ctx := setup(releaseOpts{
snapshot: true, snapshot: true,
}) })
require.True(t, ctx.Snapshot) require.True(t, ctx.Snapshot)
@ -46,7 +46,7 @@ func TestReleaseFlags(t *testing.T) {
}) })
t.Run("skips", func(t *testing.T) { t.Run("skips", func(t *testing.T) {
var ctx = setup(releaseOpts{ ctx := setup(releaseOpts{
skipPublish: true, skipPublish: true,
skipSign: true, skipSign: true,
skipValidate: true, skipValidate: true,
@ -63,10 +63,10 @@ func TestReleaseFlags(t *testing.T) {
}) })
t.Run("notes", func(t *testing.T) { t.Run("notes", func(t *testing.T) {
var notes = "foo.md" notes := "foo.md"
var header = "header.md" header := "header.md"
var footer = "footer.md" footer := "footer.md"
var ctx = setup(releaseOpts{ ctx := setup(releaseOpts{
releaseNotes: notes, releaseNotes: notes,
releaseHeader: header, releaseHeader: header,
releaseFooter: footer, releaseFooter: footer,

View File

@ -8,14 +8,14 @@ import (
) )
func TestRootCmd(t *testing.T) { func TestRootCmd(t *testing.T) {
var mem = &exitMemento{} mem := &exitMemento{}
Execute("1.2.3", mem.Exit, []string{"-h"}) Execute("1.2.3", mem.Exit, []string{"-h"})
require.Equal(t, 0, mem.code) require.Equal(t, 0, mem.code)
} }
func TestRootCmdHelp(t *testing.T) { func TestRootCmdHelp(t *testing.T) {
var mem = &exitMemento{} mem := &exitMemento{}
var cmd = newRootCmd("", mem.Exit).cmd cmd := newRootCmd("", mem.Exit).cmd
cmd.SetArgs([]string{"-h"}) cmd.SetArgs([]string{"-h"})
require.NoError(t, cmd.Execute()) require.NoError(t, cmd.Execute())
require.Equal(t, 0, mem.code) require.Equal(t, 0, mem.code)
@ -23,8 +23,8 @@ func TestRootCmdHelp(t *testing.T) {
func TestRootCmdVersion(t *testing.T) { func TestRootCmdVersion(t *testing.T) {
var b bytes.Buffer var b bytes.Buffer
var mem = &exitMemento{} mem := &exitMemento{}
var cmd = newRootCmd("1.2.3", mem.Exit).cmd cmd := newRootCmd("1.2.3", mem.Exit).cmd
cmd.SetOut(&b) cmd.SetOut(&b)
cmd.SetArgs([]string{"-v"}) cmd.SetArgs([]string{"-v"})
require.NoError(t, cmd.Execute()) require.NoError(t, cmd.Execute())
@ -33,31 +33,31 @@ func TestRootCmdVersion(t *testing.T) {
} }
func TestRootCmdExitCode(t *testing.T) { func TestRootCmdExitCode(t *testing.T) {
var mem = &exitMemento{} mem := &exitMemento{}
var cmd = newRootCmd("", mem.Exit) cmd := newRootCmd("", mem.Exit)
var args = []string{"check", "--deprecated", "-f", "testdata/good.yml"} args := []string{"check", "--deprecated", "-f", "testdata/good.yml"}
cmd.Execute(args) cmd.Execute(args)
require.Equal(t, 2, mem.code) require.Equal(t, 2, mem.code)
} }
func TestRootRelease(t *testing.T) { func TestRootRelease(t *testing.T) {
setup(t) setup(t)
var mem = &exitMemento{} mem := &exitMemento{}
var cmd = newRootCmd("", mem.Exit) cmd := newRootCmd("", mem.Exit)
cmd.Execute([]string{}) cmd.Execute([]string{})
require.Equal(t, 1, mem.code) require.Equal(t, 1, mem.code)
} }
func TestRootReleaseDebug(t *testing.T) { func TestRootReleaseDebug(t *testing.T) {
setup(t) setup(t)
var mem = &exitMemento{} mem := &exitMemento{}
var cmd = newRootCmd("", mem.Exit) cmd := newRootCmd("", mem.Exit)
cmd.Execute([]string{"r", "--debug"}) cmd.Execute([]string{"r", "--debug"})
require.Equal(t, 1, mem.code) require.Equal(t, 1, mem.code)
} }
func TestShouldPrependRelease(t *testing.T) { func TestShouldPrependRelease(t *testing.T) {
var result = func(args []string) bool { result := func(args []string) bool {
return shouldPrependRelease(newRootCmd("1", func(_ int) {}).cmd, args) return shouldPrependRelease(newRootCmd("1", func(_ int) {}).cmd, args)
} }

View File

@ -154,7 +154,7 @@ func (artifacts Artifacts) List() []*Artifact {
// GroupByPlatform groups the artifacts by their platform. // GroupByPlatform groups the artifacts by their platform.
func (artifacts Artifacts) GroupByPlatform() map[string][]*Artifact { func (artifacts Artifacts) GroupByPlatform() map[string][]*Artifact {
var result = map[string][]*Artifact{} result := map[string][]*Artifact{}
for _, a := range artifacts.items { for _, a := range artifacts.items {
plat := a.Goos + a.Goarch + a.Goarm + a.Gomips plat := a.Goos + a.Goarch + a.Goarm + a.Gomips
result[plat] = append(result[plat], a) result[plat] = append(result[plat], a)
@ -208,7 +208,7 @@ func ByType(t Type) Filter {
// ByFormats filters artifacts by a `Format` extra field. // ByFormats filters artifacts by a `Format` extra field.
func ByFormats(formats ...string) Filter { func ByFormats(formats ...string) Filter {
var filters = make([]Filter, 0, len(formats)) filters := make([]Filter, 0, len(formats))
for _, format := range formats { for _, format := range formats {
format := format format := format
filters = append(filters, func(a *Artifact) bool { filters = append(filters, func(a *Artifact) bool {
@ -220,7 +220,7 @@ func ByFormats(formats ...string) Filter {
// ByIDs filter artifacts by an `ID` extra field. // ByIDs filter artifacts by an `ID` extra field.
func ByIDs(ids ...string) Filter { func ByIDs(ids ...string) Filter {
var filters = make([]Filter, 0, len(ids)) filters := make([]Filter, 0, len(ids))
for _, id := range ids { for _, id := range ids {
id := id id := id
filters = append(filters, func(a *Artifact) bool { filters = append(filters, func(a *Artifact) bool {
@ -266,7 +266,7 @@ func (artifacts *Artifacts) Filter(filter Filter) Artifacts {
return *artifacts return *artifacts
} }
var result = New() result := New()
for _, a := range artifacts.items { for _, a := range artifacts.items {
if filter(a) { if filter(a) {
result.items = append(result.items, a) result.items = append(result.items, a)

View File

@ -162,7 +162,6 @@ func (s *GetExistingReleaseSuite) TestReleaseExists() {
require.NotNil(t, result) require.NotNil(t, result)
require.Equal(t, *result, release) require.Equal(t, *result, release)
require.NoError(t, err) require.NoError(t, err)
} }
func TestGetExistingReleaseSuite(t *testing.T) { func TestGetExistingReleaseSuite(t *testing.T) {
@ -409,7 +408,7 @@ func TestGiteaUploadSuite(t *testing.T) {
} }
func TestGiteaReleaseURLTemplate(t *testing.T) { func TestGiteaReleaseURLTemplate(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
GiteaURLs: config.GiteaURLs{ GiteaURLs: config.GiteaURLs{
API: "https://gitea.com/api/v1", API: "https://gitea.com/api/v1",
Download: "https://gitea.com", Download: "https://gitea.com",

View File

@ -139,16 +139,16 @@ func (c *githubClient) CreateRelease(ctx *context.Context, body string) (string,
} }
data := &github.RepositoryRelease{ data := &github.RepositoryRelease{
Name: github.String(title), Name: github.String(title),
TagName: github.String(ctx.Git.CurrentTag), TagName: github.String(ctx.Git.CurrentTag),
Body: github.String(body), Body: github.String(body),
Draft: github.Bool(ctx.Config.Release.Draft), Draft: github.Bool(ctx.Config.Release.Draft),
Prerelease: github.Bool(ctx.PreRelease), Prerelease: github.Bool(ctx.PreRelease),
} }
if ctx.Config.Release.DiscussionCategoryName != "" { if ctx.Config.Release.DiscussionCategoryName != "" {
data.DiscussionCategoryName = github.String(ctx.Config.Release.DiscussionCategoryName) data.DiscussionCategoryName = github.String(ctx.Config.Release.DiscussionCategoryName)
} }
release, _, err = c.client.Repositories.GetReleaseByTag( release, _, err = c.client.Repositories.GetReleaseByTag(
ctx, ctx,
ctx.Config.Release.GitHub.Owner, ctx.Config.Release.GitHub.Owner,

View File

@ -48,7 +48,7 @@ func TestNewGitHubClient(t *testing.T) {
} }
func TestGitHubUploadReleaseIDNotInt(t *testing.T) { func TestGitHubUploadReleaseIDNotInt(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
client, err := NewGitHub(ctx, ctx.Token) client, err := NewGitHub(ctx, ctx.Token)
require.NoError(t, err) require.NoError(t, err)
@ -60,7 +60,7 @@ func TestGitHubUploadReleaseIDNotInt(t *testing.T) {
} }
func TestGitHubReleaseURLTemplate(t *testing.T) { func TestGitHubReleaseURLTemplate(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
GitHubURLs: config.GitHubURLs{ GitHubURLs: config.GitHubURLs{
// default URL would otherwise be set via pipe/defaults // default URL would otherwise be set via pipe/defaults
Download: DefaultGitHubDownloadURL, Download: DefaultGitHubDownloadURL,
@ -83,7 +83,7 @@ func TestGitHubReleaseURLTemplate(t *testing.T) {
} }
func TestGitHubCreateReleaseWrongNameTemplate(t *testing.T) { func TestGitHubCreateReleaseWrongNameTemplate(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Release: config.Release{ Release: config.Release{
NameTemplate: "{{.dddddddddd", NameTemplate: "{{.dddddddddd",
}, },

View File

@ -34,7 +34,7 @@ func NewGitLab(ctx *context.Context, token string) (Client, error) {
InsecureSkipVerify: ctx.Config.GitLabURLs.SkipTLSVerify, InsecureSkipVerify: ctx.Config.GitLabURLs.SkipTLSVerify,
}, },
} }
var options = []gitlab.ClientOptionFunc{ options := []gitlab.ClientOptionFunc{
gitlab.WithHTTPClient(&http.Client{ gitlab.WithHTTPClient(&http.Client{
Transport: transport, Transport: transport,
}), }),
@ -52,7 +52,6 @@ func NewGitLab(ctx *context.Context, token string) (Client, error) {
// CloseMilestone closes a given milestone. // CloseMilestone closes a given milestone.
func (c *gitlabClient) CloseMilestone(ctx *context.Context, repo Repo, title string) error { func (c *gitlabClient) CloseMilestone(ctx *context.Context, repo Repo, title string) error {
milestone, err := c.getMilestoneByTitle(repo, title) milestone, err := c.getMilestoneByTitle(repo, title)
if err != nil { if err != nil {
return err return err
} }
@ -287,7 +286,6 @@ func (c *gitlabClient) Upload(
file.Name(), file.Name(),
nil, nil,
) )
if err != nil { if err != nil {
return err return err
} }
@ -308,7 +306,6 @@ func (c *gitlabClient) Upload(
Name: &name, Name: &name,
URL: &linkURL, URL: &linkURL,
}) })
if err != nil { if err != nil {
return RetriableError{err} return RetriableError{err}
} }
@ -360,7 +357,6 @@ func (c *gitlabClient) getMilestoneByTitle(repo Repo, title string) (*gitlab.Mil
for { for {
milestones, resp, err := c.client.Milestones.ListMilestones(repo.String(), opts) milestones, resp, err := c.client.Milestones.ListMilestones(repo.String(), opts)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -35,7 +35,7 @@ func TestFailToExtractHashFromProjectFileURL(t *testing.T) {
} }
func TestGitLabReleaseURLTemplate(t *testing.T) { func TestGitLabReleaseURLTemplate(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
GitLabURLs: config.GitLabURLs{ GitLabURLs: config.GitLabURLs{
// default URL would otherwise be set via pipe/defaults // default URL would otherwise be set via pipe/defaults
Download: DefaultGitLabDownloadURL, Download: DefaultGitLabDownloadURL,

View File

@ -29,7 +29,7 @@ func TestExecute(t *testing.T) {
// Preload artifacts // Preload artifacts
ctx.Artifacts = artifact.New() ctx.Artifacts = artifact.New()
var folder = t.TempDir() folder := t.TempDir()
for _, a := range []struct { for _, a := range []struct {
id string id string
ext string ext string
@ -43,8 +43,8 @@ func TestExecute(t *testing.T) {
{"checksum", "sum", artifact.Checksum}, {"checksum", "sum", artifact.Checksum},
{"signature", "sig", artifact.Signature}, {"signature", "sig", artifact.Signature},
} { } {
var file = filepath.Join(folder, "a."+a.ext) file := filepath.Join(folder, "a."+a.ext)
require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0644)) require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0o644))
ctx.Artifacts.Add(&artifact.Artifact{ ctx.Artifacts.Add(&artifact.Artifact{
Name: "a." + a.ext, Name: "a." + a.ext,
Goos: "linux", Goos: "linux",

View File

@ -12,7 +12,7 @@ import (
// Find resolves extra files globs et al into a map of names/paths or an error. // Find resolves extra files globs et al into a map of names/paths or an error.
func Find(files []config.ExtraFile) (map[string]string, error) { func Find(files []config.ExtraFile) (map[string]string, error) {
var result = map[string]string{} result := map[string]string{}
for _, extra := range files { for _, extra := range files {
if extra.Glob == "" { if extra.Glob == "" {
continue continue
@ -27,7 +27,7 @@ func Find(files []config.ExtraFile) (map[string]string, error) {
log.Debugf("ignoring directory %s", file) log.Debugf("ignoring directory %s", file)
continue continue
} }
var name = filepath.Base(file) name := filepath.Base(file)
if old, ok := result[name]; ok { if old, ok := result[name]; ok {
log.Warnf("overriding %s with %s for name %s", old, file, name) log.Warnf("overriding %s with %s for name %s", old, file, name)
} }

View File

@ -19,12 +19,12 @@ func IsRepo() bool {
// RunEnv runs a git command with the specified env vars and returns its output or errors. // RunEnv runs a git command with the specified env vars and returns its output or errors.
func RunEnv(env map[string]string, args ...string) (string, error) { func RunEnv(env map[string]string, args ...string) (string, error) {
// TODO: use exex.CommandContext here and refactor. // TODO: use exex.CommandContext here and refactor.
var extraArgs = []string{ extraArgs := []string{
"-c", "log.showSignature=false", "-c", "log.showSignature=false",
} }
args = append(extraArgs, args...) args = append(extraArgs, args...)
/* #nosec */ /* #nosec */
var cmd = exec.Command("git", args...) cmd := exec.Command("git", args...)
if env != nil { if env != nil {
cmd.Env = []string{} cmd.Env = []string{}

View File

@ -121,13 +121,13 @@ func getUsername(ctx *context.Context, upload *config.Upload, kind string) strin
return upload.Username return upload.Username
} }
var key = fmt.Sprintf("%s_%s_USERNAME", strings.ToUpper(kind), strings.ToUpper(upload.Name)) key := fmt.Sprintf("%s_%s_USERNAME", strings.ToUpper(kind), strings.ToUpper(upload.Name))
return ctx.Env[key] return ctx.Env[key]
} }
// password is optional // password is optional
func getPassword(ctx *context.Context, upload *config.Upload, kind string) string { func getPassword(ctx *context.Context, upload *config.Upload, kind string) string {
var key = fmt.Sprintf("%s_%s_SECRET", strings.ToUpper(kind), strings.ToUpper(upload.Name)) key := fmt.Sprintf("%s_%s_SECRET", strings.ToUpper(kind), strings.ToUpper(upload.Name))
return ctx.Env[key] return ctx.Env[key]
} }
@ -176,7 +176,7 @@ func Upload(ctx *context.Context, uploads []config.Upload, kind string, check Re
return err return err
} }
var filter = artifact.Or(filters...) filter := artifact.Or(filters...)
if len(upload.IDs) > 0 { if len(upload.IDs) > 0 {
filter = artifact.And(filter, artifact.ByIDs(upload.IDs...)) filter = artifact.And(filter, artifact.ByIDs(upload.IDs...))
} }
@ -189,9 +189,9 @@ func Upload(ctx *context.Context, uploads []config.Upload, kind string, check Re
} }
func uploadWithFilter(ctx *context.Context, upload *config.Upload, filter artifact.Filter, kind string, check ResponseChecker) error { func uploadWithFilter(ctx *context.Context, upload *config.Upload, filter artifact.Filter, kind string, check ResponseChecker) error {
var artifacts = ctx.Artifacts.Filter(filter).List() artifacts := ctx.Artifacts.Filter(filter).List()
log.Debugf("will upload %d artifacts", len(artifacts)) log.Debugf("will upload %d artifacts", len(artifacts))
var g = semerrgroup.New(ctx.Parallelism) g := semerrgroup.New(ctx.Parallelism)
for _, artifact := range artifacts { for _, artifact := range artifacts {
artifact := artifact artifact := artifact
g.Go(func() error { g.Go(func() error {
@ -233,7 +233,7 @@ func uploadAsset(ctx *context.Context, upload *config.Upload, artifact *artifact
} }
log.Debugf("generated target url: %s", targetURL) log.Debugf("generated target url: %s", targetURL)
var headers = map[string]string{} headers := map[string]string{}
if upload.CustomHeaders != nil { if upload.CustomHeaders != nil {
for name, value := range upload.CustomHeaders { for name, value := range upload.CustomHeaders {
resolvedValue, err := resolveHeaderTemplate(ctx, upload, artifact, value) resolvedValue, err := resolveHeaderTemplate(ctx, upload, artifact, value)
@ -364,7 +364,7 @@ func executeHTTPRequest(ctx *context.Context, upload *config.Upload, req *h.Requ
// resolveTargetTemplate returns the resolved target template with replaced variables // resolveTargetTemplate returns the resolved target template with replaced variables
// Those variables can be replaced by the given context, goos, goarch, goarm and more. // Those variables can be replaced by the given context, goos, goarch, goarm and more.
func resolveTargetTemplate(ctx *context.Context, upload *config.Upload, artifact *artifact.Artifact) (string, error) { func resolveTargetTemplate(ctx *context.Context, upload *config.Upload, artifact *artifact.Artifact) (string, error) {
var replacements = map[string]string{} replacements := map[string]string{}
if upload.Mode == ModeBinary { if upload.Mode == ModeBinary {
// TODO: multiple archives here // TODO: multiple archives here
replacements = ctx.Config.Archives[0].Replacements replacements = ctx.Config.Archives[0].Replacements
@ -377,7 +377,7 @@ func resolveTargetTemplate(ctx *context.Context, upload *config.Upload, artifact
// resolveHeaderTemplate returns the resolved custom header template with replaced variables // resolveHeaderTemplate returns the resolved custom header template with replaced variables
// Those variables can be replaced by the given context, goos, goarch, goarm and more. // Those variables can be replaced by the given context, goos, goarch, goarm and more.
func resolveHeaderTemplate(ctx *context.Context, upload *config.Upload, artifact *artifact.Artifact, headerValue string) (string, error) { func resolveHeaderTemplate(ctx *context.Context, upload *config.Upload, artifact *artifact.Artifact, headerValue string) (string, error) {
var replacements = map[string]string{} replacements := map[string]string{}
if upload.Mode == ModeBinary { if upload.Mode == ModeBinary {
// TODO: multiple archives here // TODO: multiple archives here
replacements = ctx.Config.Archives[0].Replacements replacements = ctx.Config.Archives[0].Replacements

View File

@ -21,8 +21,8 @@ import (
) )
func TestAssetOpenDefault(t *testing.T) { func TestAssetOpenDefault(t *testing.T) {
var tf = filepath.Join(t.TempDir(), "asset") tf := filepath.Join(t.TempDir(), "asset")
require.NoError(t, os.WriteFile(tf, []byte("a"), 0765)) require.NoError(t, os.WriteFile(tf, []byte("a"), 0o765))
a, err := assetOpenDefault("blah", &artifact.Artifact{ a, err := assetOpenDefault("blah", &artifact.Artifact{
Path: tf, Path: tf,
@ -237,7 +237,7 @@ func TestUpload(t *testing.T) {
ctx.Env["TEST_A_USERNAME"] = "u2" ctx.Env["TEST_A_USERNAME"] = "u2"
ctx.Version = "2.1.0" ctx.Version = "2.1.0"
ctx.Artifacts = artifact.New() ctx.Artifacts = artifact.New()
var folder = t.TempDir() folder := t.TempDir()
for _, a := range []struct { for _, a := range []struct {
ext string ext string
typ artifact.Type typ artifact.Type
@ -250,8 +250,8 @@ func TestUpload(t *testing.T) {
{"sum", artifact.Checksum}, {"sum", artifact.Checksum},
{"sig", artifact.Signature}, {"sig", artifact.Signature},
} { } {
var file = filepath.Join(folder, "a."+a.ext) file := filepath.Join(folder, "a."+a.ext)
require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0644)) require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0o644))
ctx.Artifacts.Add(&artifact.Artifact{ ctx.Artifacts.Add(&artifact.Artifact{
Name: "a." + a.ext, Name: "a." + a.ext,
Goos: "linux", Goos: "linux",
@ -273,7 +273,8 @@ func TestUpload(t *testing.T) {
setup func(*httptest.Server) (*context.Context, config.Upload) setup func(*httptest.Server) (*context.Context, config.Upload)
check func(r []*h.Request) error check func(r []*h.Request) error
}{ }{
{"wrong-mode", true, true, true, true, {
"wrong-mode", true, true, true, true,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: "wrong-mode", Mode: "wrong-mode",
@ -285,7 +286,8 @@ func TestUpload(t *testing.T) {
}, },
checks(), checks(),
}, },
{"username-from-env", true, true, false, false, {
"username-from-env", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeArchive, Mode: ModeArchive,
@ -299,7 +301,8 @@ func TestUpload(t *testing.T) {
check{"/blah/2.1.0/a.tar", "u2", "x", content, map[string]string{}}, check{"/blah/2.1.0/a.tar", "u2", "x", content, map[string]string{}},
), ),
}, },
{"post", true, true, false, false, {
"post", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Method: h.MethodPost, Method: h.MethodPost,
@ -315,7 +318,8 @@ func TestUpload(t *testing.T) {
check{"/blah/2.1.0/a.tar", "u1", "x", content, map[string]string{}}, check{"/blah/2.1.0/a.tar", "u1", "x", content, map[string]string{}},
), ),
}, },
{"archive", true, true, false, false, {
"archive", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeArchive, Mode: ModeArchive,
@ -330,7 +334,8 @@ func TestUpload(t *testing.T) {
check{"/blah/2.1.0/a.tar", "u1", "x", content, map[string]string{}}, check{"/blah/2.1.0/a.tar", "u1", "x", content, map[string]string{}},
), ),
}, },
{"archive_with_os_tmpl", true, true, false, false, {
"archive_with_os_tmpl", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeArchive, Mode: ModeArchive,
@ -345,7 +350,8 @@ func TestUpload(t *testing.T) {
check{"/blah/2.1.0/linux/amd64/a.tar", "u1", "x", content, map[string]string{}}, check{"/blah/2.1.0/linux/amd64/a.tar", "u1", "x", content, map[string]string{}},
), ),
}, },
{"archive_with_ids", true, true, false, false, {
"archive_with_ids", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeArchive, Mode: ModeArchive,
@ -361,7 +367,8 @@ func TestUpload(t *testing.T) {
check{"/blah/2.1.0/a.tar", "u1", "x", content, map[string]string{}}, check{"/blah/2.1.0/a.tar", "u1", "x", content, map[string]string{}},
), ),
}, },
{"binary", true, true, false, false, {
"binary", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -373,7 +380,8 @@ func TestUpload(t *testing.T) {
}, },
checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{}}), checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{}}),
}, },
{"binary_with_os_tmpl", true, true, false, false, {
"binary_with_os_tmpl", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -385,7 +393,8 @@ func TestUpload(t *testing.T) {
}, },
checks(check{"/blah/2.1.0/Linux/amd64/a.ubi", "u2", "x", content, map[string]string{}}), checks(check{"/blah/2.1.0/Linux/amd64/a.ubi", "u2", "x", content, map[string]string{}}),
}, },
{"binary_with_ids", true, true, false, false, {
"binary_with_ids", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -398,7 +407,8 @@ func TestUpload(t *testing.T) {
}, },
checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{}}), checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{}}),
}, },
{"binary-add-ending-bar", true, true, false, false, {
"binary-add-ending-bar", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -410,7 +420,8 @@ func TestUpload(t *testing.T) {
}, },
checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{}}), checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{}}),
}, },
{"archive-with-checksum-and-signature", true, true, false, false, {
"archive-with-checksum-and-signature", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeArchive, Mode: ModeArchive,
@ -429,7 +440,8 @@ func TestUpload(t *testing.T) {
check{"/blah/2.1.0/a.sig", "u3", "x", content, map[string]string{}}, check{"/blah/2.1.0/a.sig", "u3", "x", content, map[string]string{}},
), ),
}, },
{"bad-template", true, true, true, true, {
"bad-template", true, true, true, true,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -443,7 +455,8 @@ func TestUpload(t *testing.T) {
}, },
checks(), checks(),
}, },
{"failed-request", true, true, true, true, {
"failed-request", true, true, true, true,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -457,7 +470,8 @@ func TestUpload(t *testing.T) {
}, },
checks(), checks(),
}, },
{"broken-cert", false, true, false, true, {
"broken-cert", false, true, false, true,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -471,7 +485,8 @@ func TestUpload(t *testing.T) {
}, },
checks(), checks(),
}, },
{"skip-publishing", true, true, true, true, {
"skip-publishing", true, true, true, true,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
c := *ctx c := *ctx
c.SkipPublish = true c.SkipPublish = true
@ -479,7 +494,8 @@ func TestUpload(t *testing.T) {
}, },
checks(), checks(),
}, },
{"checksumheader", true, true, false, false, {
"checksumheader", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -492,7 +508,8 @@ func TestUpload(t *testing.T) {
}, },
checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{"-x-sha256": "5e2bf57d3f40c4b6df69daf1936cb766f832374b4fc0259a7cbff06e2f70f269"}}), checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{"-x-sha256": "5e2bf57d3f40c4b6df69daf1936cb766f832374b4fc0259a7cbff06e2f70f269"}}),
}, },
{"custom-headers", true, true, false, false, {
"custom-headers", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -507,7 +524,8 @@ func TestUpload(t *testing.T) {
}, },
checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{"x-custom-header-name": "custom-header-value"}}), checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{"x-custom-header-name": "custom-header-value"}}),
}, },
{"custom-headers-with-template", true, true, false, false, {
"custom-headers-with-template", true, true, false, false,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -522,7 +540,8 @@ func TestUpload(t *testing.T) {
}, },
checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{"x-project-name": "blah"}}), checks(check{"/blah/2.1.0/a.ubi", "u2", "x", content, map[string]string{"x-project-name": "blah"}}),
}, },
{"invalid-template-in-custom-headers", true, true, true, true, {
"invalid-template-in-custom-headers", true, true, true, true,
func(s *httptest.Server) (*context.Context, config.Upload) { func(s *httptest.Server) (*context.Context, config.Upload) {
return ctx, config.Upload{ return ctx, config.Upload{
Mode: ModeBinary, Mode: ModeBinary,
@ -572,7 +591,6 @@ func TestUpload(t *testing.T) {
}) })
} }
} }
} }
func cert(srv *httptest.Server) string { func cert(srv *httptest.Server) string {

View File

@ -7,14 +7,14 @@ import (
) )
func TestIDs(t *testing.T) { func TestIDs(t *testing.T) {
var ids = New("foos") ids := New("foos")
ids.Inc("foo") ids.Inc("foo")
ids.Inc("bar") ids.Inc("bar")
require.NoError(t, ids.Validate()) require.NoError(t, ids.Validate())
} }
func TestIDsError(t *testing.T) { func TestIDsError(t *testing.T) {
var ids = New("builds") ids := New("builds")
ids.Inc("foo") ids.Inc("foo")
ids.Inc("bar") ids.Inc("bar")
ids.Inc("foo") ids.Inc("foo")

View File

@ -46,12 +46,12 @@ func (Pipe) String() string {
// Default sets the pipe defaults. // Default sets the pipe defaults.
func (Pipe) Default(ctx *context.Context) error { func (Pipe) Default(ctx *context.Context) error {
var ids = ids.New("archives") ids := ids.New("archives")
if len(ctx.Config.Archives) == 0 { if len(ctx.Config.Archives) == 0 {
ctx.Config.Archives = append(ctx.Config.Archives, config.Archive{}) ctx.Config.Archives = append(ctx.Config.Archives, config.Archive{})
} }
for i := range ctx.Config.Archives { for i := range ctx.Config.Archives {
var archive = &ctx.Config.Archives[i] archive := &ctx.Config.Archives[i]
if archive.Format == "" { if archive.Format == "" {
archive.Format = "tar.gz" archive.Format = "tar.gz"
} }
@ -88,10 +88,10 @@ func (Pipe) Default(ctx *context.Context) error {
// Run the pipe. // Run the pipe.
func (Pipe) Run(ctx *context.Context) error { func (Pipe) Run(ctx *context.Context) error {
var g = semerrgroup.New(ctx.Parallelism) g := semerrgroup.New(ctx.Parallelism)
for i, archive := range ctx.Config.Archives { for i, archive := range ctx.Config.Archives {
archive := archive archive := archive
var artifacts = ctx.Artifacts.Filter( artifacts := ctx.Artifacts.Filter(
artifact.And( artifact.And(
artifact.ByType(artifact.Binary), artifact.ByType(artifact.Binary),
artifact.ByIDs(archive.Builds...), artifact.ByIDs(archive.Builds...),
@ -115,7 +115,7 @@ func (Pipe) Run(ctx *context.Context) error {
} }
func checkArtifacts(artifacts map[string][]*artifact.Artifact) error { func checkArtifacts(artifacts map[string][]*artifact.Artifact) error {
var lens = map[int]bool{} lens := map[int]bool{}
for _, v := range artifacts { for _, v := range artifacts {
lens[len(v)] = true lens[len(v)] = true
} }
@ -126,7 +126,7 @@ func checkArtifacts(artifacts map[string][]*artifact.Artifact) error {
} }
func create(ctx *context.Context, arch config.Archive, binaries []*artifact.Artifact) error { func create(ctx *context.Context, arch config.Archive, binaries []*artifact.Artifact) error {
var format = packageFormat(arch, binaries[0].Goos) format := packageFormat(arch, binaries[0].Goos)
folder, err := tmpl.New(ctx). folder, err := tmpl.New(ctx).
WithArtifact(binaries[0], arch.Replacements). WithArtifact(binaries[0], arch.Replacements).
Apply(arch.NameTemplate) Apply(arch.NameTemplate)
@ -135,7 +135,7 @@ func create(ctx *context.Context, arch config.Archive, binaries []*artifact.Arti
} }
archivePath := filepath.Join(ctx.Config.Dist, folder+"."+format) archivePath := filepath.Join(ctx.Config.Dist, folder+"."+format)
lock.Lock() lock.Lock()
if err := os.MkdirAll(filepath.Dir(archivePath), 0755|os.ModeDir); err != nil { if err := os.MkdirAll(filepath.Dir(archivePath), 0o755|os.ModeDir); err != nil {
lock.Unlock() lock.Unlock()
return err return err
} }
@ -151,7 +151,7 @@ func create(ctx *context.Context, arch config.Archive, binaries []*artifact.Arti
lock.Unlock() lock.Unlock()
defer archiveFile.Close() defer archiveFile.Close()
var log = log.WithField("archive", archivePath) log := log.WithField("archive", archivePath)
log.Info("creating") log.Info("creating")
template := tmpl.New(ctx). template := tmpl.New(ctx).
@ -161,7 +161,7 @@ func create(ctx *context.Context, arch config.Archive, binaries []*artifact.Arti
return err return err
} }
var a = NewEnhancedArchive(archive.New(archiveFile), wrap) a := NewEnhancedArchive(archive.New(archiveFile), wrap)
defer a.Close() defer a.Close()
files, err := findFiles(template, arch) files, err := findFiles(template, arch)

View File

@ -25,19 +25,19 @@ func TestDescription(t *testing.T) {
func createFakeBinary(t *testing.T, dist, arch, bin string) { func createFakeBinary(t *testing.T, dist, arch, bin string) {
t.Helper() t.Helper()
var path = filepath.Join(dist, arch, bin) path := filepath.Join(dist, arch, bin)
require.NoError(t, os.MkdirAll(filepath.Dir(path), 0755)) require.NoError(t, os.MkdirAll(filepath.Dir(path), 0o755))
f, err := os.Create(path) f, err := os.Create(path)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
} }
func TestRunPipe(t *testing.T) { func TestRunPipe(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
for _, format := range []string{"tar.gz", "zip"} { for _, format := range []string{"tar.gz", "zip"} {
t.Run("Archive format "+format, func(t *testing.T) { t.Run("Archive format "+format, func(t *testing.T) {
var dist = filepath.Join(folder, format+"_dist") dist := filepath.Join(folder, format+"_dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
for _, arch := range []string{"darwinamd64", "linux386", "linuxarm7", "linuxmipssoftfloat"} { for _, arch := range []string{"darwinamd64", "linux386", "linuxarm7", "linuxmipssoftfloat"} {
createFakeBinary(t, dist, arch, "bin/mybin") createFakeBinary(t, dist, arch, "bin/mybin")
} }
@ -47,11 +47,11 @@ func TestRunPipe(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
} }
require.NoError(t, os.MkdirAll(filepath.Join(folder, "foo", "bar", "foobar"), 0755)) require.NoError(t, os.MkdirAll(filepath.Join(folder, "foo", "bar", "foobar"), 0o755))
f, err := os.Create(filepath.Join(filepath.Join(folder, "foo", "bar", "foobar", "blah.txt"))) f, err := os.Create(filepath.Join(filepath.Join(folder, "foo", "bar", "foobar", "blah.txt")))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
ProjectName: "foobar", ProjectName: "foobar",
@ -74,7 +74,7 @@ func TestRunPipe(t *testing.T) {
}, },
}, },
) )
var darwinBuild = &artifact.Artifact{ darwinBuild := &artifact.Artifact{
Goos: "darwin", Goos: "darwin",
Goarch: "amd64", Goarch: "amd64",
Name: "bin/mybin", Name: "bin/mybin",
@ -85,7 +85,7 @@ func TestRunPipe(t *testing.T) {
"ID": "default", "ID": "default",
}, },
} }
var linux386Build = &artifact.Artifact{ linux386Build := &artifact.Artifact{
Goos: "linux", Goos: "linux",
Goarch: "386", Goarch: "386",
Name: "bin/mybin", Name: "bin/mybin",
@ -96,7 +96,7 @@ func TestRunPipe(t *testing.T) {
"ID": "default", "ID": "default",
}, },
} }
var linuxArmBuild = &artifact.Artifact{ linuxArmBuild := &artifact.Artifact{
Goos: "linux", Goos: "linux",
Goarch: "arm", Goarch: "arm",
Goarm: "7", Goarm: "7",
@ -108,7 +108,7 @@ func TestRunPipe(t *testing.T) {
"ID": "default", "ID": "default",
}, },
} }
var linuxMipsBuild = &artifact.Artifact{ linuxMipsBuild := &artifact.Artifact{
Goos: "linux", Goos: "linux",
Goarch: "mips", Goarch: "mips",
Gomips: "softfloat", Gomips: "softfloat",
@ -120,7 +120,7 @@ func TestRunPipe(t *testing.T) {
"ID": "default", "ID": "default",
}, },
} }
var windowsBuild = &artifact.Artifact{ windowsBuild := &artifact.Artifact{
Goos: "windows", Goos: "windows",
Goarch: "amd64", Goarch: "amd64",
Name: "bin/mybin.exe", Name: "bin/mybin.exe",
@ -141,7 +141,7 @@ func TestRunPipe(t *testing.T) {
ctx.Git.CurrentTag = "v0.0.1" ctx.Git.CurrentTag = "v0.0.1"
ctx.Config.Archives[0].Format = format ctx.Config.Archives[0].Format = format
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
var archives = ctx.Artifacts.Filter(artifact.ByType(artifact.UploadableArchive)).List() archives := ctx.Artifacts.Filter(artifact.ByType(artifact.UploadableArchive)).List()
for _, arch := range archives { for _, arch := range archives {
require.Equal(t, "myid", arch.Extra["ID"].(string), "all archives should have the archive ID set") require.Equal(t, "myid", arch.Extra["ID"].(string), "all archives should have the archive ID set")
} }
@ -183,14 +183,14 @@ func TestRunPipe(t *testing.T) {
} }
func TestRunPipeDifferentBinaryCount(t *testing.T) { func TestRunPipeDifferentBinaryCount(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
for _, arch := range []string{"darwinamd64", "linuxamd64"} { for _, arch := range []string{"darwinamd64", "linuxamd64"} {
createFakeBinary(t, dist, arch, "bin/mybin") createFakeBinary(t, dist, arch, "bin/mybin")
} }
createFakeBinary(t, dist, "darwinamd64", "bin/foobar") createFakeBinary(t, dist, "darwinamd64", "bin/foobar")
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Dist: dist, Dist: dist,
ProjectName: "foobar", ProjectName: "foobar",
Archives: []config.Archive{ Archives: []config.Archive{
@ -202,7 +202,7 @@ func TestRunPipeDifferentBinaryCount(t *testing.T) {
}, },
}, },
}) })
var darwinBuild = &artifact.Artifact{ darwinBuild := &artifact.Artifact{
Goos: "darwin", Goos: "darwin",
Goarch: "amd64", Goarch: "amd64",
Name: "bin/mybin", Name: "bin/mybin",
@ -213,7 +213,7 @@ func TestRunPipeDifferentBinaryCount(t *testing.T) {
"ID": "default", "ID": "default",
}, },
} }
var darwinBuild2 = &artifact.Artifact{ darwinBuild2 := &artifact.Artifact{
Goos: "darwin", Goos: "darwin",
Goarch: "amd64", Goarch: "amd64",
Name: "bin/foobar", Name: "bin/foobar",
@ -224,7 +224,7 @@ func TestRunPipeDifferentBinaryCount(t *testing.T) {
"ID": "foobar", "ID": "foobar",
}, },
} }
var linuxArmBuild = &artifact.Artifact{ linuxArmBuild := &artifact.Artifact{
Goos: "linux", Goos: "linux",
Goarch: "amd64", Goarch: "amd64",
Name: "bin/mybin", Name: "bin/mybin",
@ -254,10 +254,10 @@ func TestRunPipeDifferentBinaryCount(t *testing.T) {
} }
func TestRunPipeNoBinaries(t *testing.T) { func TestRunPipeNoBinaries(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Dist: dist, Dist: dist,
ProjectName: "foobar", ProjectName: "foobar",
Archives: []config.Archive{{}}, Archives: []config.Archive{{}},
@ -275,7 +275,7 @@ func zipFiles(t *testing.T, path string) []string {
require.NoError(t, err) require.NoError(t, err)
r, err := zip.NewReader(f, info.Size()) r, err := zip.NewReader(f, info.Size())
require.NoError(t, err) require.NoError(t, err)
var paths = make([]string, len(r.File)) paths := make([]string, len(r.File))
for i, zf := range r.File { for i, zf := range r.File {
paths[i] = zf.Name paths[i] = zf.Name
} }
@ -290,7 +290,7 @@ func tarFiles(t *testing.T, path string) []string {
gr, err := gzip.NewReader(f) gr, err := gzip.NewReader(f)
require.NoError(t, err) require.NoError(t, err)
defer gr.Close() defer gr.Close()
var r = tar.NewReader(gr) r := tar.NewReader(gr)
var paths []string var paths []string
for { for {
next, err := r.Next() next, err := r.Next()
@ -304,11 +304,11 @@ func tarFiles(t *testing.T, path string) []string {
} }
func TestRunPipeBinary(t *testing.T) { func TestRunPipeBinary(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "windowsamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "windowsamd64"), 0o755))
f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin")) f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
@ -318,7 +318,7 @@ func TestRunPipeBinary(t *testing.T) {
f, err = os.Create(filepath.Join(folder, "README.md")) f, err = os.Create(filepath.Join(folder, "README.md"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
Archives: []config.Archive{ Archives: []config.Archive{
@ -356,7 +356,7 @@ func TestRunPipeBinary(t *testing.T) {
}, },
}) })
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
var binaries = ctx.Artifacts.Filter(artifact.ByType(artifact.UploadableBinary)) binaries := ctx.Artifacts.Filter(artifact.ByType(artifact.UploadableBinary))
darwin := binaries.Filter(artifact.ByGoos("darwin")).List()[0] darwin := binaries.Filter(artifact.ByGoos("darwin")).List()[0]
windows := binaries.Filter(artifact.ByGoos("windows")).List()[0] windows := binaries.Filter(artifact.ByGoos("windows")).List()[0]
require.Equal(t, "mybin_0.0.1_darwin_amd64", darwin.Name) require.Equal(t, "mybin_0.0.1_darwin_amd64", darwin.Name)
@ -365,7 +365,7 @@ func TestRunPipeBinary(t *testing.T) {
} }
func TestRunPipeDistRemoved(t *testing.T) { func TestRunPipeDistRemoved(t *testing.T) {
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: "/tmp/path/to/nope", Dist: "/tmp/path/to/nope",
Archives: []config.Archive{ Archives: []config.Archive{
@ -395,14 +395,14 @@ func TestRunPipeDistRemoved(t *testing.T) {
} }
func TestRunPipeInvalidGlob(t *testing.T) { func TestRunPipeInvalidGlob(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0o755))
f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin")) f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
Archives: []config.Archive{ Archives: []config.Archive{
@ -433,14 +433,14 @@ func TestRunPipeInvalidGlob(t *testing.T) {
} }
func TestRunPipeInvalidNameTemplate(t *testing.T) { func TestRunPipeInvalidNameTemplate(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0o755))
f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin")) f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
Archives: []config.Archive{ Archives: []config.Archive{
@ -468,14 +468,14 @@ func TestRunPipeInvalidNameTemplate(t *testing.T) {
} }
func TestRunPipeInvalidFilesNameTemplate(t *testing.T) { func TestRunPipeInvalidFilesNameTemplate(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0o755))
f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin")) f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
Archives: []config.Archive{ Archives: []config.Archive{
@ -506,14 +506,14 @@ func TestRunPipeInvalidFilesNameTemplate(t *testing.T) {
} }
func TestRunPipeInvalidWrapInDirectoryTemplate(t *testing.T) { func TestRunPipeInvalidWrapInDirectoryTemplate(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0o755))
f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin")) f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
Archives: []config.Archive{ Archives: []config.Archive{
@ -542,17 +542,17 @@ func TestRunPipeInvalidWrapInDirectoryTemplate(t *testing.T) {
} }
func TestRunPipeWrap(t *testing.T) { func TestRunPipeWrap(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0o755))
f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin")) f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
f, err = os.Create(filepath.Join(folder, "README.md")) f, err = os.Create(filepath.Join(folder, "README.md"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
Archives: []config.Archive{ Archives: []config.Archive{
@ -585,7 +585,7 @@ func TestRunPipeWrap(t *testing.T) {
}) })
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
var archives = ctx.Artifacts.Filter(artifact.ByType(artifact.UploadableArchive)).List() archives := ctx.Artifacts.Filter(artifact.ByType(artifact.UploadableArchive)).List()
require.Len(t, archives, 1) require.Len(t, archives, 1)
require.Equal(t, "foo_macOS", archives[0].ExtraOr("WrappedIn", "")) require.Equal(t, "foo_macOS", archives[0].ExtraOr("WrappedIn", ""))
@ -608,7 +608,7 @@ func TestRunPipeWrap(t *testing.T) {
} }
func TestDefault(t *testing.T) { func TestDefault(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Archives: []config.Archive{}, Archives: []config.Archive{},
}, },
@ -620,7 +620,7 @@ func TestDefault(t *testing.T) {
} }
func TestDefaultSet(t *testing.T) { func TestDefaultSet(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Archives: []config.Archive{ Archives: []config.Archive{
{ {
@ -641,7 +641,7 @@ func TestDefaultSet(t *testing.T) {
} }
func TestDefaultFormatBinary(t *testing.T) { func TestDefaultFormatBinary(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Archives: []config.Archive{ Archives: []config.Archive{
{ {
@ -655,7 +655,7 @@ func TestDefaultFormatBinary(t *testing.T) {
} }
func TestFormatFor(t *testing.T) { func TestFormatFor(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Archives: []config.Archive{ Archives: []config.Archive{
{ {
@ -676,11 +676,11 @@ func TestFormatFor(t *testing.T) {
} }
func TestBinaryOverride(t *testing.T) { func TestBinaryOverride(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "windowsamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "windowsamd64"), 0o755))
f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin")) f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
@ -692,7 +692,7 @@ func TestBinaryOverride(t *testing.T) {
require.NoError(t, f.Close()) require.NoError(t, f.Close())
for _, format := range []string{"tar.gz", "zip"} { for _, format := range []string{"tar.gz", "zip"} {
t.Run("Archive format "+format, func(t *testing.T) { t.Run("Archive format "+format, func(t *testing.T) {
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
ProjectName: "foobar", ProjectName: "foobar",
@ -741,7 +741,7 @@ func TestBinaryOverride(t *testing.T) {
ctx.Config.Archives[0].Format = format ctx.Config.Archives[0].Format = format
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
var archives = ctx.Artifacts.Filter(artifact.ByType(artifact.UploadableArchive)) archives := ctx.Artifacts.Filter(artifact.ByType(artifact.UploadableArchive))
darwin := archives.Filter(artifact.ByGoos("darwin")).List()[0] darwin := archives.Filter(artifact.ByGoos("darwin")).List()[0]
require.Equal(t, "foobar_0.0.1_darwin_amd64."+format, darwin.Name) require.Equal(t, "foobar_0.0.1_darwin_amd64."+format, darwin.Name)
require.Equal(t, format, darwin.ExtraOr("Format", "")) require.Equal(t, format, darwin.ExtraOr("Format", ""))
@ -756,18 +756,18 @@ func TestBinaryOverride(t *testing.T) {
} }
func TestRunPipeSameArchiveFilename(t *testing.T) { func TestRunPipeSameArchiveFilename(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "darwinamd64"), 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "windowsamd64"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "windowsamd64"), 0o755))
f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin")) f, err := os.Create(filepath.Join(dist, "darwinamd64", "mybin"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
f, err = os.Create(filepath.Join(dist, "windowsamd64", "mybin.exe")) f, err = os.Create(filepath.Join(dist, "windowsamd64", "mybin.exe"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
ProjectName: "foobar", ProjectName: "foobar",
@ -815,7 +815,7 @@ func TestRunPipeSameArchiveFilename(t *testing.T) {
} }
func TestDuplicateFilesInsideArchive(t *testing.T) { func TestDuplicateFilesInsideArchive(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
f, err := ioutil.TempFile(folder, "") f, err := ioutil.TempFile(folder, "")
require.NoError(t, err) require.NoError(t, err)
@ -856,7 +856,7 @@ func TestWrapInDirectory(t *testing.T) {
} }
func TestSeveralArchivesWithTheSameID(t *testing.T) { func TestSeveralArchivesWithTheSameID(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Archives: []config.Archive{ Archives: []config.Archive{
{ {

View File

@ -35,18 +35,14 @@ func teardown() {
server.Close() server.Close()
} }
func testMethod(t *testing.T, r *http.Request, want string) { func requireMethodPut(t *testing.T, r *http.Request) {
t.Helper() t.Helper()
if got := r.Method; got != want { require.Equal(t, http.MethodPut, r.Method)
t.Errorf("Request method: %v, want %v", got, want)
}
} }
func testHeader(t *testing.T, r *http.Request, header, want string) { func requireHeader(t *testing.T, r *http.Request, header, want string) {
t.Helper() t.Helper()
if got := r.Header.Get(header); got != want { require.Equal(t, want, r.Header.Get(header))
t.Errorf("Header.Get(%q) returned %q, want %q", header, got, want)
}
} }
// TODO: improve all tests bellow by checking wether the mocked handlers // TODO: improve all tests bellow by checking wether the mocked handlers
@ -66,10 +62,10 @@ func TestRunPipe_ModeBinary(t *testing.T) {
// Dummy artifactories // Dummy artifactories
mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
fmt.Fprint(w, `{ fmt.Fprint(w, `{
@ -92,10 +88,10 @@ func TestRunPipe_ModeBinary(t *testing.T) {
}`) }`)
}) })
mux.HandleFunc("/example-repo-local/mybin/linux/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/mybin/linux/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
fmt.Fprint(w, `{ fmt.Fprint(w, `{
@ -118,10 +114,10 @@ func TestRunPipe_ModeBinary(t *testing.T) {
}`) }`)
}) })
mux.HandleFunc("/production-repo-remote/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/production-repo-remote/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "productionuser" with secret "productionuser-apikey" // Basic auth of user "productionuser" with secret "productionuser-apikey"
testHeader(t, r, "Authorization", "Basic cHJvZHVjdGlvbnVzZXI6cHJvZHVjdGlvbnVzZXItYXBpa2V5") requireHeader(t, r, "Authorization", "Basic cHJvZHVjdGlvbnVzZXI6cHJvZHVjdGlvbnVzZXItYXBpa2V5")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
fmt.Fprint(w, `{ fmt.Fprint(w, `{
@ -144,10 +140,10 @@ func TestRunPipe_ModeBinary(t *testing.T) {
}`) }`)
}) })
mux.HandleFunc("/production-repo-remote/mybin/linux/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/production-repo-remote/mybin/linux/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "productionuser" with secret "productionuser-apikey" // Basic auth of user "productionuser" with secret "productionuser-apikey"
testHeader(t, r, "Authorization", "Basic cHJvZHVjdGlvbnVzZXI6cHJvZHVjdGlvbnVzZXItYXBpa2V5") requireHeader(t, r, "Authorization", "Basic cHJvZHVjdGlvbnVzZXI6cHJvZHVjdGlvbnVzZXItYXBpa2V5")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
fmt.Fprint(w, `{ fmt.Fprint(w, `{
@ -255,9 +251,9 @@ func TestRunPipe_ModeArchive(t *testing.T) {
// Dummy artifactories // Dummy artifactories
mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.tar.gz", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.tar.gz", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
fmt.Fprint(w, `{ fmt.Fprint(w, `{
@ -281,9 +277,9 @@ func TestRunPipe_ModeArchive(t *testing.T) {
uploads.Store("targz", true) uploads.Store("targz", true)
}) })
mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.deb", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.deb", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
fmt.Fprint(w, `{ fmt.Fprint(w, `{
@ -399,10 +395,10 @@ func TestRunPipe_BadCredentials(t *testing.T) {
// Dummy artifactories // Dummy artifactories
mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.WriteHeader(http.StatusUnauthorized) w.WriteHeader(http.StatusUnauthorized)
fmt.Fprint(w, `{ fmt.Fprint(w, `{
@ -459,10 +455,10 @@ func TestRunPipe_UnparsableErrorResponse(t *testing.T) {
// Dummy artifactories // Dummy artifactories
mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.WriteHeader(http.StatusUnauthorized) w.WriteHeader(http.StatusUnauthorized)
fmt.Fprint(w, `...{ fmt.Fprint(w, `...{

View File

@ -60,7 +60,7 @@ func TestRunPipeFail(t *testing.T) {
} }
func TestRunWithEnv(t *testing.T) { func TestRunWithEnv(t *testing.T) {
var f = filepath.Join(t.TempDir(), "testfile") f := filepath.Join(t.TempDir(), "testfile")
require.NoError(t, Pipe{}.Run(context.New( require.NoError(t, Pipe{}.Run(context.New(
config.Project{ config.Project{
Env: []string{ Env: []string{

View File

@ -23,7 +23,7 @@ func TestNoBlob(t *testing.T) {
func TestDefaultsNoConfig(t *testing.T) { func TestDefaultsNoConfig(t *testing.T) {
errorString := "bucket or provider cannot be empty" errorString := "bucket or provider cannot be empty"
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Blobs: []config.Blob{ Blobs: []config.Blob{
{}, {},
}, },
@ -33,7 +33,7 @@ func TestDefaultsNoConfig(t *testing.T) {
func TestDefaultsNoBucket(t *testing.T) { func TestDefaultsNoBucket(t *testing.T) {
errorString := "bucket or provider cannot be empty" errorString := "bucket or provider cannot be empty"
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Blobs: []config.Blob{ Blobs: []config.Blob{
{ {
Provider: "azblob", Provider: "azblob",
@ -45,7 +45,7 @@ func TestDefaultsNoBucket(t *testing.T) {
func TestDefaultsNoProvider(t *testing.T) { func TestDefaultsNoProvider(t *testing.T) {
errorString := "bucket or provider cannot be empty" errorString := "bucket or provider cannot be empty"
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Blobs: []config.Blob{ Blobs: []config.Blob{
{ {
Bucket: "goreleaser-bucket", Bucket: "goreleaser-bucket",
@ -56,7 +56,7 @@ func TestDefaultsNoProvider(t *testing.T) {
} }
func TestDefaults(t *testing.T) { func TestDefaults(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Blobs: []config.Blob{ Blobs: []config.Blob{
{ {
Bucket: "foo", Bucket: "foo",
@ -86,7 +86,7 @@ func TestDefaults(t *testing.T) {
} }
func TestDefaultsWithProvider(t *testing.T) { func TestDefaultsWithProvider(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Blobs: []config.Blob{ Blobs: []config.Blob{
{ {
Bucket: "foo", Bucket: "foo",
@ -110,7 +110,7 @@ func TestPipe_Publish(t *testing.T) {
} }
func TestPipe_PublishExtraFiles(t *testing.T) { func TestPipe_PublishExtraFiles(t *testing.T) {
var extra = []config.ExtraFile{ extra := []config.ExtraFile{
{ {
Glob: "./testdata/file.golden", Glob: "./testdata/file.golden",
}, },
@ -122,14 +122,14 @@ func pipePublish(t *testing.T, extra []config.ExtraFile) {
t.Helper() t.Helper()
gcloudCredentials, _ := filepath.Abs("./testdata/credentials.json") gcloudCredentials, _ := filepath.Abs("./testdata/credentials.json")
var folder = t.TempDir() folder := t.TempDir()
tgzpath := filepath.Join(folder, "bin.tar.gz") tgzpath := filepath.Join(folder, "bin.tar.gz")
debpath := filepath.Join(folder, "bin.deb") debpath := filepath.Join(folder, "bin.deb")
require.NoError(t, os.WriteFile(tgzpath, []byte("fake\ntargz"), 0744)) require.NoError(t, os.WriteFile(tgzpath, []byte("fake\ntargz"), 0o744))
require.NoError(t, os.WriteFile(debpath, []byte("fake\ndeb"), 0744)) require.NoError(t, os.WriteFile(debpath, []byte("fake\ndeb"), 0o744))
// Azure Blob Context // Azure Blob Context
var azblobctx = context.New(config.Project{ azblobctx := context.New(config.Project{
Dist: folder, Dist: folder,
ProjectName: "testupload", ProjectName: "testupload",
Blobs: []config.Blob{ Blobs: []config.Blob{
@ -154,7 +154,7 @@ func pipePublish(t *testing.T, extra []config.ExtraFile) {
}) })
// Google Cloud Storage Context // Google Cloud Storage Context
var gsctx = context.New(config.Project{ gsctx := context.New(config.Project{
Dist: folder, Dist: folder,
ProjectName: "testupload", ProjectName: "testupload",
Blobs: []config.Blob{ Blobs: []config.Blob{
@ -180,7 +180,7 @@ func pipePublish(t *testing.T, extra []config.ExtraFile) {
}) })
// AWS S3 Context // AWS S3 Context
var s3ctx = context.New(config.Project{ s3ctx := context.New(config.Project{
Dist: folder, Dist: folder,
ProjectName: "testupload", ProjectName: "testupload",
Blobs: []config.Blob{ Blobs: []config.Blob{

View File

@ -40,7 +40,7 @@ func urlFor(ctx *context.Context, conf config.Blob) (string, error) {
return bucketURL, nil return bucketURL, nil
} }
var query = url.Values{} query := url.Values{}
if conf.Endpoint != "" { if conf.Endpoint != "" {
query.Add("endpoint", conf.Endpoint) query.Add("endpoint", conf.Endpoint)
query.Add("s3ForcePathStyle", "true") query.Add("s3ForcePathStyle", "true")
@ -73,7 +73,7 @@ func doUpload(ctx *context.Context, conf config.Blob) error {
return err return err
} }
var filter = artifact.Or( filter := artifact.Or(
artifact.ByType(artifact.UploadableArchive), artifact.ByType(artifact.UploadableArchive),
artifact.ByType(artifact.UploadableBinary), artifact.ByType(artifact.UploadableBinary),
artifact.ByType(artifact.UploadableSourceArchive), artifact.ByType(artifact.UploadableSourceArchive),
@ -85,19 +85,19 @@ func doUpload(ctx *context.Context, conf config.Blob) error {
filter = artifact.And(filter, artifact.ByIDs(conf.IDs...)) filter = artifact.And(filter, artifact.ByIDs(conf.IDs...))
} }
var up = newUploader(ctx) up := newUploader(ctx)
if err := up.Open(ctx, bucketURL); err != nil { if err := up.Open(ctx, bucketURL); err != nil {
return handleError(err, bucketURL) return handleError(err, bucketURL)
} }
defer up.Close() defer up.Close()
var g = semerrgroup.New(ctx.Parallelism) g := semerrgroup.New(ctx.Parallelism)
for _, artifact := range ctx.Artifacts.Filter(filter).List() { for _, artifact := range ctx.Artifacts.Filter(filter).List() {
artifact := artifact artifact := artifact
g.Go(func() error { g.Go(func() error {
// TODO: replace this with ?prefix=folder on the bucket url // TODO: replace this with ?prefix=folder on the bucket url
var dataFile = artifact.Path dataFile := artifact.Path
var uploadFile = path.Join(folder, artifact.Name) uploadFile := path.Join(folder, artifact.Name)
err := uploadData(ctx, conf, up, dataFile, uploadFile, bucketURL) err := uploadData(ctx, conf, up, dataFile, uploadFile, bucketURL)
@ -113,7 +113,7 @@ func doUpload(ctx *context.Context, conf config.Blob) error {
name := name name := name
fullpath := fullpath fullpath := fullpath
g.Go(func() error { g.Go(func() error {
var uploadFile = path.Join(folder, name) uploadFile := path.Join(folder, name)
err := uploadData(ctx, conf, up, fullpath, uploadFile, bucketURL) err := uploadData(ctx, conf, up, fullpath, uploadFile, bucketURL)
@ -215,6 +215,7 @@ func (u *productionUploader) Close() error {
} }
return u.bucket.Close() return u.bucket.Close()
} }
func (u *productionUploader) Open(ctx *context.Context, bucket string) error { func (u *productionUploader) Open(ctx *context.Context, bucket string) error {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"bucket": bucket, "bucket": bucket,

View File

@ -91,9 +91,9 @@ func TestFullFormulae(t *testing.T) {
}), data) }), data)
require.NoError(t, err) require.NoError(t, err)
var golden = "testdata/test.rb.golden" golden := "testdata/test.rb.golden"
if *update { if *update {
err := os.WriteFile(golden, []byte(formulae), 0655) err := os.WriteFile(golden, []byte(formulae), 0o655)
require.NoError(t, err) require.NoError(t, err)
} }
bts, err := os.ReadFile(golden) bts, err := os.ReadFile(golden)
@ -111,9 +111,9 @@ func TestFullFormulaeLinuxOnly(t *testing.T) {
}), data) }), data)
require.NoError(t, err) require.NoError(t, err)
var golden = "testdata/test_linux_only.rb.golden" golden := "testdata/test_linux_only.rb.golden"
if *update { if *update {
err := os.WriteFile(golden, []byte(formulae), 0655) err := os.WriteFile(golden, []byte(formulae), 0o655)
require.NoError(t, err) require.NoError(t, err)
} }
bts, err := os.ReadFile(golden) bts, err := os.ReadFile(golden)
@ -131,7 +131,7 @@ func TestFormulaeSimple(t *testing.T) {
} }
func TestSplit(t *testing.T) { func TestSplit(t *testing.T) {
var parts = split("system \"true\"\nsystem \"#{bin}/foo -h\"") parts := split("system \"true\"\nsystem \"#{bin}/foo -h\"")
require.Equal(t, []string{"system \"true\"", "system \"#{bin}/foo -h\""}, parts) require.Equal(t, []string{"system \"true\"", "system \"#{bin}/foo -h\""}, parts)
parts = split("") parts = split("")
require.Equal(t, []string{}, parts) require.Equal(t, []string{}, parts)
@ -180,8 +180,8 @@ func TestRunPipe(t *testing.T) {
}, },
} { } {
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var ctx = &context.Context{ ctx := &context.Context{
Git: context.GitInfo{ Git: context.GitInfo{
CurrentTag: "v1.0.1", CurrentTag: "v1.0.1",
}, },
@ -223,7 +223,7 @@ func TestRunPipe(t *testing.T) {
"ArtifactUploadHash": "820ead5d9d2266c728dce6d4d55b6460", "ArtifactUploadHash": "820ead5d9d2266c728dce6d4d55b6460",
}, },
}) })
var path = filepath.Join(folder, "bin.tar.gz") path := filepath.Join(folder, "bin.tar.gz")
ctx.Artifacts.Add(&artifact.Artifact{ ctx.Artifacts.Add(&artifact.Artifact{
Name: "bin.tar.gz", Name: "bin.tar.gz",
Path: path, Path: path,
@ -241,13 +241,13 @@ func TestRunPipe(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
client := &DummyClient{} client := &DummyClient{}
var distFile = filepath.Join(folder, name+".rb") distFile := filepath.Join(folder, name+".rb")
require.NoError(t, doRun(ctx, ctx.Config.Brews[0], client)) require.NoError(t, doRun(ctx, ctx.Config.Brews[0], client))
require.True(t, client.CreatedFile) require.True(t, client.CreatedFile)
var golden = fmt.Sprintf("testdata/%s.rb.golden", name) golden := fmt.Sprintf("testdata/%s.rb.golden", name)
if *update { if *update {
require.NoError(t, os.WriteFile(golden, []byte(client.Content), 0655)) require.NoError(t, os.WriteFile(golden, []byte(client.Content), 0o655))
} }
bts, err := os.ReadFile(golden) bts, err := os.ReadFile(golden)
require.NoError(t, err) require.NoError(t, err)
@ -261,8 +261,8 @@ func TestRunPipe(t *testing.T) {
} }
func TestRunPipeNameTemplate(t *testing.T) { func TestRunPipeNameTemplate(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var ctx = &context.Context{ ctx := &context.Context{
Git: context.GitInfo{ Git: context.GitInfo{
CurrentTag: "v1.0.1", CurrentTag: "v1.0.1",
}, },
@ -288,7 +288,7 @@ func TestRunPipeNameTemplate(t *testing.T) {
}, },
}, },
} }
var path = filepath.Join(folder, "bin.tar.gz") path := filepath.Join(folder, "bin.tar.gz")
ctx.Artifacts.Add(&artifact.Artifact{ ctx.Artifacts.Add(&artifact.Artifact{
Name: "bin.tar.gz", Name: "bin.tar.gz",
Path: path, Path: path,
@ -306,13 +306,13 @@ func TestRunPipeNameTemplate(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
client := &DummyClient{} client := &DummyClient{}
var distFile = filepath.Join(folder, "foo_is_bar.rb") distFile := filepath.Join(folder, "foo_is_bar.rb")
require.NoError(t, doRun(ctx, ctx.Config.Brews[0], client)) require.NoError(t, doRun(ctx, ctx.Config.Brews[0], client))
require.True(t, client.CreatedFile) require.True(t, client.CreatedFile)
var golden = "testdata/foo_is_bar.rb.golden" golden := "testdata/foo_is_bar.rb.golden"
if *update { if *update {
require.NoError(t, os.WriteFile(golden, []byte(client.Content), 0655)) require.NoError(t, os.WriteFile(golden, []byte(client.Content), 0o655))
} }
bts, err := os.ReadFile(golden) bts, err := os.ReadFile(golden)
require.NoError(t, err) require.NoError(t, err)
@ -324,8 +324,8 @@ func TestRunPipeNameTemplate(t *testing.T) {
} }
func TestRunPipeMultipleBrewsWithSkip(t *testing.T) { func TestRunPipeMultipleBrewsWithSkip(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var ctx = &context.Context{ ctx := &context.Context{
Git: context.GitInfo{ Git: context.GitInfo{
CurrentTag: "v1.0.1", CurrentTag: "v1.0.1",
}, },
@ -373,7 +373,7 @@ func TestRunPipeMultipleBrewsWithSkip(t *testing.T) {
}, },
}, },
} }
var path = filepath.Join(folder, "bin.tar.gz") path := filepath.Join(folder, "bin.tar.gz")
ctx.Artifacts.Add(&artifact.Artifact{ ctx.Artifacts.Add(&artifact.Artifact{
Name: "bin.tar.gz", Name: "bin.tar.gz",
Path: path, Path: path,
@ -391,16 +391,15 @@ func TestRunPipeMultipleBrewsWithSkip(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var cli = &DummyClient{} cli := &DummyClient{}
require.EqualError(t, publishAll(ctx, cli), `brew.skip_upload is set`) require.EqualError(t, publishAll(ctx, cli), `brew.skip_upload is set`)
require.True(t, cli.CreatedFile) require.True(t, cli.CreatedFile)
for _, brew := range ctx.Config.Brews { for _, brew := range ctx.Config.Brews {
var distFile = filepath.Join(folder, brew.Name+".rb") distFile := filepath.Join(folder, brew.Name+".rb")
_, err := os.Stat(distFile) _, err := os.Stat(distFile)
require.NoError(t, err, "file should exist: "+distFile) require.NoError(t, err, "file should exist: "+distFile)
} }
} }
func TestRunPipeForMultipleArmVersions(t *testing.T) { func TestRunPipeForMultipleArmVersions(t *testing.T) {
@ -415,8 +414,8 @@ func TestRunPipeForMultipleArmVersions(t *testing.T) {
ctx.Config.Brews[0].Goarm = "7" ctx.Config.Brews[0].Goarm = "7"
}, },
} { } {
var folder = t.TempDir() folder := t.TempDir()
var ctx = &context.Context{ ctx := &context.Context{
TokenType: context.TokenTypeGitHub, TokenType: context.TokenTypeGitHub,
Git: context.GitInfo{ Git: context.GitInfo{
CurrentTag: "v1.0.1", CurrentTag: "v1.0.1",
@ -493,7 +492,7 @@ func TestRunPipeForMultipleArmVersions(t *testing.T) {
goarm: "7", goarm: "7",
}, },
} { } {
var path = filepath.Join(folder, fmt.Sprintf("%s.tar.gz", a.name)) path := filepath.Join(folder, fmt.Sprintf("%s.tar.gz", a.name))
ctx.Artifacts.Add(&artifact.Artifact{ ctx.Artifacts.Add(&artifact.Artifact{
Name: fmt.Sprintf("%s.tar.gz", a.name), Name: fmt.Sprintf("%s.tar.gz", a.name),
Path: path, Path: path,
@ -512,13 +511,13 @@ func TestRunPipeForMultipleArmVersions(t *testing.T) {
} }
client := &DummyClient{} client := &DummyClient{}
var distFile = filepath.Join(folder, name+".rb") distFile := filepath.Join(folder, name+".rb")
require.NoError(t, doRun(ctx, ctx.Config.Brews[0], client)) require.NoError(t, doRun(ctx, ctx.Config.Brews[0], client))
require.True(t, client.CreatedFile) require.True(t, client.CreatedFile)
var golden = fmt.Sprintf("testdata/%s.rb.golden", name) golden := fmt.Sprintf("testdata/%s.rb.golden", name)
if *update { if *update {
require.NoError(t, os.WriteFile(golden, []byte(client.Content), 0655)) require.NoError(t, os.WriteFile(golden, []byte(client.Content), 0o655))
} }
bts, err := os.ReadFile(golden) bts, err := os.ReadFile(golden)
require.NoError(t, err) require.NoError(t, err)
@ -531,7 +530,7 @@ func TestRunPipeForMultipleArmVersions(t *testing.T) {
} }
func TestRunPipeNoBuilds(t *testing.T) { func TestRunPipeNoBuilds(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
TokenType: context.TokenTypeGitHub, TokenType: context.TokenTypeGitHub,
Config: config.Project{ Config: config.Project{
Brews: []config.Homebrew{ Brews: []config.Homebrew{
@ -550,7 +549,7 @@ func TestRunPipeNoBuilds(t *testing.T) {
} }
func TestRunPipeMultipleArchivesSameOsBuild(t *testing.T) { func TestRunPipeMultipleArchivesSameOsBuild(t *testing.T) {
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Brews: []config.Homebrew{ Brews: []config.Homebrew{
{ {
@ -697,7 +696,7 @@ func TestRunPipeMultipleArchivesSameOsBuild(t *testing.T) {
} }
func TestRunPipeBrewNotSetup(t *testing.T) { func TestRunPipeBrewNotSetup(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
client := &DummyClient{} client := &DummyClient{}
@ -706,7 +705,7 @@ func TestRunPipeBrewNotSetup(t *testing.T) {
} }
func TestRunPipeBinaryRelease(t *testing.T) { func TestRunPipeBinaryRelease(t *testing.T) {
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Brews: []config.Homebrew{ Brews: []config.Homebrew{
{ {
@ -731,8 +730,8 @@ func TestRunPipeBinaryRelease(t *testing.T) {
} }
func TestRunPipeNoUpload(t *testing.T) { func TestRunPipeNoUpload(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Dist: folder, Dist: folder,
ProjectName: "foo", ProjectName: "foo",
Release: config.Release{}, Release: config.Release{},
@ -747,7 +746,7 @@ func TestRunPipeNoUpload(t *testing.T) {
}) })
ctx.TokenType = context.TokenTypeGitHub ctx.TokenType = context.TokenTypeGitHub
ctx.Git = context.GitInfo{CurrentTag: "v1.0.1"} ctx.Git = context.GitInfo{CurrentTag: "v1.0.1"}
var path = filepath.Join(folder, "whatever.tar.gz") path := filepath.Join(folder, "whatever.tar.gz")
f, err := os.Create(path) f, err := os.Create(path)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
@ -764,7 +763,7 @@ func TestRunPipeNoUpload(t *testing.T) {
}) })
client := &DummyClient{} client := &DummyClient{}
var assertNoPublish = func(t *testing.T) { assertNoPublish := func(t *testing.T) {
t.Helper() t.Helper()
testlib.AssertSkipped(t, doRun(ctx, ctx.Config.Brews[0], client)) testlib.AssertSkipped(t, doRun(ctx, ctx.Config.Brews[0], client))
require.False(t, client.CreatedFile) require.False(t, client.CreatedFile)
@ -784,8 +783,8 @@ func TestRunPipeNoUpload(t *testing.T) {
} }
func TestRunEmptyTokenType(t *testing.T) { func TestRunEmptyTokenType(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Dist: folder, Dist: folder,
ProjectName: "foo", ProjectName: "foo",
Release: config.Release{}, Release: config.Release{},
@ -799,7 +798,7 @@ func TestRunEmptyTokenType(t *testing.T) {
}, },
}) })
ctx.Git = context.GitInfo{CurrentTag: "v1.0.1"} ctx.Git = context.GitInfo{CurrentTag: "v1.0.1"}
var path = filepath.Join(folder, "whatever.tar.gz") path := filepath.Join(folder, "whatever.tar.gz")
f, err := os.Create(path) f, err := os.Create(path)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
@ -819,8 +818,8 @@ func TestRunEmptyTokenType(t *testing.T) {
} }
func TestRunTokenTypeNotImplementedForBrew(t *testing.T) { func TestRunTokenTypeNotImplementedForBrew(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Dist: folder, Dist: folder,
ProjectName: "foo", ProjectName: "foo",
Release: config.Release{}, Release: config.Release{},
@ -835,7 +834,7 @@ func TestRunTokenTypeNotImplementedForBrew(t *testing.T) {
}) })
ctx.TokenType = context.TokenTypeGitea ctx.TokenType = context.TokenTypeGitea
ctx.Git = context.GitInfo{CurrentTag: "v1.0.1"} ctx.Git = context.GitInfo{CurrentTag: "v1.0.1"}
var path = filepath.Join(folder, "whatever.tar.gz") path := filepath.Join(folder, "whatever.tar.gz")
f, err := os.Create(path) f, err := os.Create(path)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
@ -857,7 +856,7 @@ func TestRunTokenTypeNotImplementedForBrew(t *testing.T) {
func TestDefault(t *testing.T) { func TestDefault(t *testing.T) {
testlib.Mktmp(t) testlib.Mktmp(t)
var ctx = &context.Context{ ctx := &context.Context{
TokenType: context.TokenTypeGitHub, TokenType: context.TokenTypeGitHub,
Config: config.Project{ Config: config.Project{
ProjectName: "myproject", ProjectName: "myproject",

View File

@ -16,8 +16,10 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
var errFailedBuild = errors.New("fake builder failed") var (
var errFailedDefault = errors.New("fake builder defaults failed") errFailedBuild = errors.New("fake builder failed")
errFailedDefault = errors.New("fake builder defaults failed")
)
type fakeBuilder struct { type fakeBuilder struct {
fail bool fail bool
@ -35,10 +37,10 @@ func (f *fakeBuilder) Build(ctx *context.Context, build config.Build, options ap
if f.fail { if f.fail {
return errFailedBuild return errFailedBuild
} }
if err := os.MkdirAll(filepath.Dir(options.Path), 0755); err != nil { if err := os.MkdirAll(filepath.Dir(options.Path), 0o755); err != nil {
return err return err
} }
if err := os.WriteFile(options.Path, []byte("foo"), 0755); err != nil { if err := os.WriteFile(options.Path, []byte("foo"), 0o755); err != nil {
return err return err
} }
ctx.Artifacts.Add(&artifact.Artifact{ ctx.Artifacts.Add(&artifact.Artifact{
@ -62,8 +64,8 @@ func TestPipeDescription(t *testing.T) {
} }
func TestBuild(t *testing.T) { func TestBuild(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var config = config.Project{ config := config.Project{
Dist: folder, Dist: folder,
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -74,7 +76,7 @@ func TestBuild(t *testing.T) {
}, },
}, },
} }
var ctx = &context.Context{ ctx := &context.Context{
Artifacts: artifact.New(), Artifacts: artifact.New(),
Git: context.GitInfo{ Git: context.GitInfo{
CurrentTag: "v1.2.3", CurrentTag: "v1.2.3",
@ -90,8 +92,8 @@ func TestBuild(t *testing.T) {
} }
func TestRunPipe(t *testing.T) { func TestRunPipe(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var config = config.Project{ config := config.Project{
Dist: folder, Dist: folder,
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -103,7 +105,7 @@ func TestRunPipe(t *testing.T) {
}, },
}, },
} }
var ctx = context.New(config) ctx := context.New(config)
ctx.Git.CurrentTag = "2.4.5" ctx.Git.CurrentTag = "2.4.5"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
require.Equal(t, ctx.Artifacts.List(), []*artifact.Artifact{{ require.Equal(t, ctx.Artifacts.List(), []*artifact.Artifact{{
@ -112,10 +114,10 @@ func TestRunPipe(t *testing.T) {
} }
func TestRunFullPipe(t *testing.T) { func TestRunFullPipe(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var pre = filepath.Join(folder, "pre") pre := filepath.Join(folder, "pre")
var post = filepath.Join(folder, "post") post := filepath.Join(folder, "post")
var config = config.Project{ config := config.Project{
Builds: []config.Build{ Builds: []config.Build{
{ {
ID: "build1", ID: "build1",
@ -136,7 +138,7 @@ func TestRunFullPipe(t *testing.T) {
}, },
Dist: folder, Dist: folder,
} }
var ctx = context.New(config) ctx := context.New(config)
ctx.Git.CurrentTag = "2.4.5" ctx.Git.CurrentTag = "2.4.5"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
require.Equal(t, ctx.Artifacts.List(), []*artifact.Artifact{{ require.Equal(t, ctx.Artifacts.List(), []*artifact.Artifact{{
@ -148,10 +150,10 @@ func TestRunFullPipe(t *testing.T) {
} }
func TestRunFullPipeFail(t *testing.T) { func TestRunFullPipeFail(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var pre = filepath.Join(folder, "pre") pre := filepath.Join(folder, "pre")
var post = filepath.Join(folder, "post") post := filepath.Join(folder, "post")
var config = config.Project{ config := config.Project{
Dist: folder, Dist: folder,
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -171,7 +173,7 @@ func TestRunFullPipeFail(t *testing.T) {
}, },
}, },
} }
var ctx = context.New(config) ctx := context.New(config)
ctx.Git.CurrentTag = "2.4.5" ctx.Git.CurrentTag = "2.4.5"
require.EqualError(t, Pipe{}.Run(ctx), errFailedBuild.Error()) require.EqualError(t, Pipe{}.Run(ctx), errFailedBuild.Error())
require.Empty(t, ctx.Artifacts.List()) require.Empty(t, ctx.Artifacts.List())
@ -179,8 +181,8 @@ func TestRunFullPipeFail(t *testing.T) {
} }
func TestRunPipeFailingHooks(t *testing.T) { func TestRunPipeFailingHooks(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var cfg = config.Project{ cfg := config.Project{
Dist: folder, Dist: folder,
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -192,14 +194,14 @@ func TestRunPipeFailingHooks(t *testing.T) {
}, },
} }
t.Run("pre-hook", func(t *testing.T) { t.Run("pre-hook", func(t *testing.T) {
var ctx = context.New(cfg) ctx := context.New(cfg)
ctx.Git.CurrentTag = "2.3.4" ctx.Git.CurrentTag = "2.3.4"
ctx.Config.Builds[0].Hooks.Pre = []config.BuildHook{{Cmd: "exit 1"}} ctx.Config.Builds[0].Hooks.Pre = []config.BuildHook{{Cmd: "exit 1"}}
ctx.Config.Builds[0].Hooks.Post = []config.BuildHook{{Cmd: "echo post"}} ctx.Config.Builds[0].Hooks.Post = []config.BuildHook{{Cmd: "echo post"}}
require.EqualError(t, Pipe{}.Run(ctx), `pre hook failed: "": exec: "exit": executable file not found in $PATH`) require.EqualError(t, Pipe{}.Run(ctx), `pre hook failed: "": exec: "exit": executable file not found in $PATH`)
}) })
t.Run("post-hook", func(t *testing.T) { t.Run("post-hook", func(t *testing.T) {
var ctx = context.New(cfg) ctx := context.New(cfg)
ctx.Git.CurrentTag = "2.3.4" ctx.Git.CurrentTag = "2.3.4"
ctx.Config.Builds[0].Hooks.Pre = []config.BuildHook{{Cmd: "echo pre"}} ctx.Config.Builds[0].Hooks.Pre = []config.BuildHook{{Cmd: "echo pre"}}
ctx.Config.Builds[0].Hooks.Post = []config.BuildHook{{Cmd: "exit 1"}} ctx.Config.Builds[0].Hooks.Post = []config.BuildHook{{Cmd: "exit 1"}}
@ -208,15 +210,15 @@ func TestRunPipeFailingHooks(t *testing.T) {
} }
func TestDefaultNoBuilds(t *testing.T) { func TestDefaultNoBuilds(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
require.NoError(t, Pipe{}.Default(ctx)) require.NoError(t, Pipe{}.Default(ctx))
} }
func TestDefaultFail(t *testing.T) { func TestDefaultFail(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var config = config.Project{ config := config.Project{
Dist: folder, Dist: folder,
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -224,14 +226,14 @@ func TestDefaultFail(t *testing.T) {
}, },
}, },
} }
var ctx = context.New(config) ctx := context.New(config)
require.EqualError(t, Pipe{}.Default(ctx), errFailedDefault.Error()) require.EqualError(t, Pipe{}.Default(ctx), errFailedDefault.Error())
require.Empty(t, ctx.Artifacts.List()) require.Empty(t, ctx.Artifacts.List())
} }
func TestDefaultExpandEnv(t *testing.T) { func TestDefaultExpandEnv(t *testing.T) {
require.NoError(t, os.Setenv("XBAR", "FOOBAR")) require.NoError(t, os.Setenv("XBAR", "FOOBAR"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -243,12 +245,12 @@ func TestDefaultExpandEnv(t *testing.T) {
}, },
} }
require.NoError(t, Pipe{}.Default(ctx)) require.NoError(t, Pipe{}.Default(ctx))
var env = ctx.Config.Builds[0].Env[0] env := ctx.Config.Builds[0].Env[0]
require.Equal(t, "XFOO=bar_FOOBAR", env) require.Equal(t, "XFOO=bar_FOOBAR", env)
} }
func TestDefaultEmptyBuild(t *testing.T) { func TestDefaultEmptyBuild(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
ProjectName: "foo", ProjectName: "foo",
Builds: []config.Build{ Builds: []config.Build{
@ -257,7 +259,7 @@ func TestDefaultEmptyBuild(t *testing.T) {
}, },
} }
require.NoError(t, Pipe{}.Default(ctx)) require.NoError(t, Pipe{}.Default(ctx))
var build = ctx.Config.Builds[0] build := ctx.Config.Builds[0]
require.Equal(t, ctx.Config.ProjectName, build.ID) require.Equal(t, ctx.Config.ProjectName, build.ID)
require.Equal(t, ctx.Config.ProjectName, build.Binary) require.Equal(t, ctx.Config.ProjectName, build.Binary)
require.Equal(t, ".", build.Dir) require.Equal(t, ".", build.Dir)
@ -271,7 +273,7 @@ func TestDefaultEmptyBuild(t *testing.T) {
} }
func TestDefaultBuildID(t *testing.T) { func TestDefaultBuildID(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
ProjectName: "foo", ProjectName: "foo",
Builds: []config.Build{ Builds: []config.Build{
@ -285,12 +287,12 @@ func TestDefaultBuildID(t *testing.T) {
}, },
} }
require.EqualError(t, Pipe{}.Default(ctx), "found 2 builds with the ID 'foo', please fix your config") require.EqualError(t, Pipe{}.Default(ctx), "found 2 builds with the ID 'foo', please fix your config")
var build = ctx.Config.Builds[0] build := ctx.Config.Builds[0]
require.Equal(t, ctx.Config.ProjectName, build.ID) require.Equal(t, ctx.Config.ProjectName, build.ID)
} }
func TestSeveralBuildsWithTheSameID(t *testing.T) { func TestSeveralBuildsWithTheSameID(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -308,7 +310,7 @@ func TestSeveralBuildsWithTheSameID(t *testing.T) {
} }
func TestDefaultPartialBuilds(t *testing.T) { func TestDefaultPartialBuilds(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -329,7 +331,7 @@ func TestDefaultPartialBuilds(t *testing.T) {
} }
require.NoError(t, Pipe{}.Default(ctx)) require.NoError(t, Pipe{}.Default(ctx))
t.Run("build0", func(t *testing.T) { t.Run("build0", func(t *testing.T) {
var build = ctx.Config.Builds[0] build := ctx.Config.Builds[0]
require.Equal(t, "bar", build.Binary) require.Equal(t, "bar", build.Binary)
require.Equal(t, ".", build.Dir) require.Equal(t, ".", build.Dir)
require.Equal(t, "./cmd/main.go", build.Main) require.Equal(t, "./cmd/main.go", build.Main)
@ -340,7 +342,7 @@ func TestDefaultPartialBuilds(t *testing.T) {
require.Equal(t, "-s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.builtBy=goreleaser", build.Ldflags[0]) require.Equal(t, "-s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.builtBy=goreleaser", build.Ldflags[0])
}) })
t.Run("build1", func(t *testing.T) { t.Run("build1", func(t *testing.T) {
var build = ctx.Config.Builds[1] build := ctx.Config.Builds[1]
require.Equal(t, "foo", build.Binary) require.Equal(t, "foo", build.Binary)
require.Equal(t, ".", build.Main) require.Equal(t, ".", build.Main)
require.Equal(t, "baz", build.Dir) require.Equal(t, "baz", build.Dir)
@ -355,7 +357,7 @@ func TestDefaultPartialBuilds(t *testing.T) {
func TestDefaultFillSingleBuild(t *testing.T) { func TestDefaultFillSingleBuild(t *testing.T) {
testlib.Mktmp(t) testlib.Mktmp(t)
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
ProjectName: "foo", ProjectName: "foo",
SingleBuild: config.Build{ SingleBuild: config.Build{
@ -369,21 +371,21 @@ func TestDefaultFillSingleBuild(t *testing.T) {
} }
func TestDefaultFailSingleBuild(t *testing.T) { func TestDefaultFailSingleBuild(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var config = config.Project{ config := config.Project{
Dist: folder, Dist: folder,
SingleBuild: config.Build{ SingleBuild: config.Build{
Lang: "fakeFailDefault", Lang: "fakeFailDefault",
}, },
} }
var ctx = context.New(config) ctx := context.New(config)
require.EqualError(t, Pipe{}.Default(ctx), errFailedDefault.Error()) require.EqualError(t, Pipe{}.Default(ctx), errFailedDefault.Error())
require.Empty(t, ctx.Artifacts.List()) require.Empty(t, ctx.Artifacts.List())
} }
func TestSkipBuild(t *testing.T) { func TestSkipBuild(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var config = config.Project{ config := config.Project{
Dist: folder, Dist: folder,
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -391,7 +393,7 @@ func TestSkipBuild(t *testing.T) {
}, },
}, },
} }
var ctx = context.New(config) ctx := context.New(config)
ctx.Git.CurrentTag = "2.4.5" ctx.Git.CurrentTag = "2.4.5"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
require.Len(t, ctx.Artifacts.List(), 0) require.Len(t, ctx.Artifacts.List(), 0)
@ -418,7 +420,7 @@ func TestExtOthers(t *testing.T) {
} }
func TestTemplate(t *testing.T) { func TestTemplate(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Git = context.GitInfo{ ctx.Git = context.GitInfo{
CurrentTag: "v1.2.3", CurrentTag: "v1.2.3",
Commit: "123", Commit: "123",
@ -437,16 +439,16 @@ func TestTemplate(t *testing.T) {
} }
func TestRunHookEnvs(t *testing.T) { func TestRunHookEnvs(t *testing.T) {
var tmp = testlib.Mktmp(t) tmp := testlib.Mktmp(t)
var build = config.Build{ build := config.Build{
Env: []string{ Env: []string{
fmt.Sprintf("FOO=%s/foo", tmp), fmt.Sprintf("FOO=%s/foo", tmp),
fmt.Sprintf("BAR=%s/bar", tmp), fmt.Sprintf("BAR=%s/bar", tmp),
}, },
} }
var opts = api.Options{ opts := api.Options{
Name: "binary-name", Name: "binary-name",
Path: "./binary-name", Path: "./binary-name",
Target: "darwin_amd64", Target: "darwin_amd64",
@ -457,7 +459,7 @@ func TestRunHookEnvs(t *testing.T) {
} }
t.Run("valid cmd template with ctx env", func(t *testing.T) { t.Run("valid cmd template with ctx env", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -470,7 +472,7 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("valid cmd template with build env", func(t *testing.T) { t.Run("valid cmd template with build env", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -480,7 +482,7 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("valid cmd template with hook env", func(t *testing.T) { t.Run("valid cmd template with hook env", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -495,7 +497,7 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("valid cmd template with ctx and build env", func(t *testing.T) { t.Run("valid cmd template with ctx and build env", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -512,7 +514,7 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("valid cmd template with ctx and hook env", func(t *testing.T) { t.Run("valid cmd template with ctx and hook env", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -531,7 +533,7 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("valid cmd template with build and hook env", func(t *testing.T) { t.Run("valid cmd template with build and hook env", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -549,7 +551,7 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("valid cmd template with ctx, build and hook env", func(t *testing.T) { t.Run("valid cmd template with ctx, build and hook env", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -571,7 +573,7 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("invalid cmd template", func(t *testing.T) { t.Run("invalid cmd template", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -580,7 +582,7 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("invalid dir template", func(t *testing.T) { t.Run("invalid dir template", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -592,7 +594,7 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("invalid hook env template", func(t *testing.T) { t.Run("invalid hook env template", func(t *testing.T) {
var err = runHook(context.New(config.Project{ err := runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
build, build,
}, },
@ -606,9 +608,9 @@ func TestRunHookEnvs(t *testing.T) {
}) })
t.Run("build env inside shell", func(t *testing.T) { t.Run("build env inside shell", func(t *testing.T) {
var shell = `#!/bin/sh -e shell := `#!/bin/sh -e
touch "$BAR"` touch "$BAR"`
err := os.WriteFile(filepath.Join(tmp, "test.sh"), []byte(shell), 0750) err := os.WriteFile(filepath.Join(tmp, "test.sh"), []byte(shell), 0o750)
require.NoError(t, err) require.NoError(t, err)
err = runHook(context.New(config.Project{ err = runHook(context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
@ -621,7 +623,7 @@ touch "$BAR"`
} }
func TestBuild_hooksKnowGoosGoarch(t *testing.T) { func TestBuild_hooksKnowGoosGoarch(t *testing.T) {
var tmpDir = testlib.Mktmp(t) tmpDir := testlib.Mktmp(t)
build := config.Build{ build := config.Build{
Lang: "fake", Lang: "fake",
Goarch: []string{"amd64"}, Goarch: []string{"amd64"},
@ -652,7 +654,7 @@ func TestBuild_hooksKnowGoosGoarch(t *testing.T) {
} }
func TestPipeOnBuild_hooksRunPerTarget(t *testing.T) { func TestPipeOnBuild_hooksRunPerTarget(t *testing.T) {
var tmpDir = testlib.Mktmp(t) tmpDir := testlib.Mktmp(t)
build := config.Build{ build := config.Build{
Lang: "fake", Lang: "fake",
@ -704,7 +706,7 @@ func TestPipeOnBuild_invalidBinaryTpl(t *testing.T) {
} }
func TestBuildOptionsForTarget(t *testing.T) { func TestBuildOptionsForTarget(t *testing.T) {
var tmpDir = testlib.Mktmp(t) tmpDir := testlib.Mktmp(t)
testCases := []struct { testCases := []struct {
name string name string
@ -761,7 +763,7 @@ func TestBuildOptionsForTarget(t *testing.T) {
} }
func TestHookComplex(t *testing.T) { func TestHookComplex(t *testing.T) {
var tmp = testlib.Mktmp(t) tmp := testlib.Mktmp(t)
require.NoError(t, runHook(context.New(config.Project{}), api.Options{}, []string{}, config.BuildHooks{ require.NoError(t, runHook(context.New(config.Project{}), api.Options{}, []string{}, config.BuildHooks{
{ {
@ -785,8 +787,8 @@ func TestHookInvalidShelCommand(t *testing.T) {
} }
func TestRunHookFailWithLogs(t *testing.T) { func TestRunHookFailWithLogs(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var config = config.Project{ config := config.Project{
Dist: folder, Dist: folder,
Builds: []config.Build{ Builds: []config.Build{
{ {
@ -802,7 +804,7 @@ func TestRunHookFailWithLogs(t *testing.T) {
}, },
}, },
} }
var ctx = context.New(config) ctx := context.New(config)
ctx.Git.CurrentTag = "2.4.5" ctx.Git.CurrentTag = "2.4.5"
require.EqualError(t, Pipe{}.Run(ctx), "pre hook failed: \"foo\\n\": exit status 1") require.EqualError(t, Pipe{}.Run(ctx), "pre hook failed: \"foo\\n\": exit status 1")
require.Empty(t, ctx.Artifacts.List()) require.Empty(t, ctx.Artifacts.List())

View File

@ -17,14 +17,14 @@ func TestDescription(t *testing.T) {
} }
func TestChangelogProvidedViaFlag(t *testing.T) { func TestChangelogProvidedViaFlag(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.ReleaseNotes = "testdata/changes.md" ctx.ReleaseNotes = "testdata/changes.md"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
require.Equal(t, "c0ff33 coffeee\n", ctx.ReleaseNotes) require.Equal(t, "c0ff33 coffeee\n", ctx.ReleaseNotes)
} }
func TestTemplatedChangelogProvidedViaFlag(t *testing.T) { func TestTemplatedChangelogProvidedViaFlag(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.ReleaseNotes = "testdata/changes-templated.md" ctx.ReleaseNotes = "testdata/changes-templated.md"
ctx.Git.CurrentTag = "v0.0.1" ctx.Git.CurrentTag = "v0.0.1"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
@ -32,7 +32,7 @@ func TestTemplatedChangelogProvidedViaFlag(t *testing.T) {
} }
func TestChangelogProvidedViaFlagAndSkipEnabled(t *testing.T) { func TestChangelogProvidedViaFlagAndSkipEnabled(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Changelog: config.Changelog{ Changelog: config.Changelog{
Skip: true, Skip: true,
}, },
@ -43,37 +43,37 @@ func TestChangelogProvidedViaFlagAndSkipEnabled(t *testing.T) {
} }
func TestChangelogProvidedViaFlagDoesntExist(t *testing.T) { func TestChangelogProvidedViaFlagDoesntExist(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.ReleaseNotes = "testdata/changes.nope" ctx.ReleaseNotes = "testdata/changes.nope"
require.EqualError(t, Pipe{}.Run(ctx), "open testdata/changes.nope: no such file or directory") require.EqualError(t, Pipe{}.Run(ctx), "open testdata/changes.nope: no such file or directory")
} }
func TestChangelogSkip(t *testing.T) { func TestChangelogSkip(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Config.Changelog.Skip = true ctx.Config.Changelog.Skip = true
testlib.AssertSkipped(t, Pipe{}.Run(ctx)) testlib.AssertSkipped(t, Pipe{}.Run(ctx))
} }
func TestReleaseHeaderProvidedViaFlagDoesntExist(t *testing.T) { func TestReleaseHeaderProvidedViaFlagDoesntExist(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.ReleaseHeader = "testdata/header.nope" ctx.ReleaseHeader = "testdata/header.nope"
require.EqualError(t, Pipe{}.Run(ctx), "open testdata/header.nope: no such file or directory") require.EqualError(t, Pipe{}.Run(ctx), "open testdata/header.nope: no such file or directory")
} }
func TestReleaseFooterProvidedViaFlagDoesntExist(t *testing.T) { func TestReleaseFooterProvidedViaFlagDoesntExist(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.ReleaseFooter = "testdata/footer.nope" ctx.ReleaseFooter = "testdata/footer.nope"
require.EqualError(t, Pipe{}.Run(ctx), "open testdata/footer.nope: no such file or directory") require.EqualError(t, Pipe{}.Run(ctx), "open testdata/footer.nope: no such file or directory")
} }
func TestSnapshot(t *testing.T) { func TestSnapshot(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Snapshot = true ctx.Snapshot = true
testlib.AssertSkipped(t, Pipe{}.Run(ctx)) testlib.AssertSkipped(t, Pipe{}.Run(ctx))
} }
func TestChangelog(t *testing.T) { func TestChangelog(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
testlib.GitInit(t) testlib.GitInit(t)
testlib.GitCommit(t, "first") testlib.GitCommit(t, "first")
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
@ -86,7 +86,7 @@ func TestChangelog(t *testing.T) {
testlib.GitCommit(t, "Merge pull request #999 from goreleaser/some-branch") testlib.GitCommit(t, "Merge pull request #999 from goreleaser/some-branch")
testlib.GitCommit(t, "this is not a Merge pull request") testlib.GitCommit(t, "this is not a Merge pull request")
testlib.GitTag(t, "v0.0.2") testlib.GitTag(t, "v0.0.2")
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Dist: folder, Dist: folder,
Changelog: config.Changelog{ Changelog: config.Changelog{
Filters: config.Filters{ Filters: config.Filters{
@ -116,7 +116,7 @@ func TestChangelog(t *testing.T) {
} }
func TestChangelogPreviousTagEnv(t *testing.T) { func TestChangelogPreviousTagEnv(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
testlib.GitInit(t) testlib.GitInit(t)
testlib.GitCommit(t, "first") testlib.GitCommit(t, "first")
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
@ -124,7 +124,7 @@ func TestChangelogPreviousTagEnv(t *testing.T) {
testlib.GitTag(t, "v0.0.2") testlib.GitTag(t, "v0.0.2")
testlib.GitCommit(t, "third") testlib.GitCommit(t, "third")
testlib.GitTag(t, "v0.0.3") testlib.GitTag(t, "v0.0.3")
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Dist: folder, Dist: folder,
Changelog: config.Changelog{Filters: config.Filters{}}, Changelog: config.Changelog{Filters: config.Filters{}},
}) })
@ -139,7 +139,7 @@ func TestChangelogPreviousTagEnv(t *testing.T) {
} }
func TestChangelogForGitlab(t *testing.T) { func TestChangelogForGitlab(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
testlib.GitInit(t) testlib.GitInit(t)
testlib.GitCommit(t, "first") testlib.GitCommit(t, "first")
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
@ -152,7 +152,7 @@ func TestChangelogForGitlab(t *testing.T) {
testlib.GitCommit(t, "Merge pull request #999 from goreleaser/some-branch") testlib.GitCommit(t, "Merge pull request #999 from goreleaser/some-branch")
testlib.GitCommit(t, "this is not a Merge pull request") testlib.GitCommit(t, "this is not a Merge pull request")
testlib.GitTag(t, "v0.0.2") testlib.GitTag(t, "v0.0.2")
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Dist: folder, Dist: folder,
Changelog: config.Changelog{ Changelog: config.Changelog{
Filters: config.Filters{ Filters: config.Filters{
@ -191,7 +191,7 @@ func TestChangelogSort(t *testing.T) {
testlib.GitCommit(t, "a: commit") testlib.GitCommit(t, "a: commit")
testlib.GitCommit(t, "b: commit") testlib.GitCommit(t, "b: commit")
testlib.GitTag(t, "v1.0.0") testlib.GitTag(t, "v1.0.0")
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Changelog: config.Changelog{}, Changelog: config.Changelog{},
}) })
ctx.Git.CurrentTag = "v1.0.0" ctx.Git.CurrentTag = "v1.0.0"
@ -240,7 +240,7 @@ func TestChangelogSort(t *testing.T) {
} }
func TestChangelogInvalidSort(t *testing.T) { func TestChangelogInvalidSort(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Changelog: config.Changelog{ Changelog: config.Changelog{
Sort: "dope", Sort: "dope",
}, },
@ -251,7 +251,7 @@ func TestChangelogInvalidSort(t *testing.T) {
func TestChangelogOfFirstRelease(t *testing.T) { func TestChangelogOfFirstRelease(t *testing.T) {
testlib.Mktmp(t) testlib.Mktmp(t)
testlib.GitInit(t) testlib.GitInit(t)
var msgs = []string{ msgs := []string{
"initial commit", "initial commit",
"another one", "another one",
"one more", "one more",
@ -261,7 +261,7 @@ func TestChangelogOfFirstRelease(t *testing.T) {
testlib.GitCommit(t, msg) testlib.GitCommit(t, msg)
} }
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Git.CurrentTag = "v0.0.1" ctx.Git.CurrentTag = "v0.0.1"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
require.Contains(t, ctx.ReleaseNotes, "## Changelog") require.Contains(t, ctx.ReleaseNotes, "## Changelog")
@ -277,7 +277,7 @@ func TestChangelogFilterInvalidRegex(t *testing.T) {
testlib.GitTag(t, "v0.0.3") testlib.GitTag(t, "v0.0.3")
testlib.GitCommit(t, "commitzzz") testlib.GitCommit(t, "commitzzz")
testlib.GitTag(t, "v0.0.4") testlib.GitTag(t, "v0.0.4")
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Changelog: config.Changelog{ Changelog: config.Changelog{
Filters: config.Filters{ Filters: config.Filters{
Exclude: []string{ Exclude: []string{
@ -294,7 +294,7 @@ func TestChangelogNoTags(t *testing.T) {
testlib.Mktmp(t) testlib.Mktmp(t)
testlib.GitInit(t) testlib.GitInit(t)
testlib.GitCommit(t, "first") testlib.GitCommit(t, "first")
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
require.Error(t, Pipe{}.Run(ctx)) require.Error(t, Pipe{}.Run(ctx))
require.Empty(t, ctx.ReleaseNotes) require.Empty(t, ctx.ReleaseNotes)
} }
@ -302,7 +302,7 @@ func TestChangelogNoTags(t *testing.T) {
func TestChangelogOnBranchWithSameNameAsTag(t *testing.T) { func TestChangelogOnBranchWithSameNameAsTag(t *testing.T) {
testlib.Mktmp(t) testlib.Mktmp(t)
testlib.GitInit(t) testlib.GitInit(t)
var msgs = []string{ msgs := []string{
"initial commit", "initial commit",
"another one", "another one",
"one more", "one more",
@ -313,7 +313,7 @@ func TestChangelogOnBranchWithSameNameAsTag(t *testing.T) {
} }
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
testlib.GitCheckoutBranch(t, "v0.0.1") testlib.GitCheckoutBranch(t, "v0.0.1")
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Git.CurrentTag = "v0.0.1" ctx.Git.CurrentTag = "v0.0.1"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
require.Contains(t, ctx.ReleaseNotes, "## Changelog") require.Contains(t, ctx.ReleaseNotes, "## Changelog")
@ -325,10 +325,10 @@ func TestChangelogOnBranchWithSameNameAsTag(t *testing.T) {
func TestChangeLogWithReleaseHeader(t *testing.T) { func TestChangeLogWithReleaseHeader(t *testing.T) {
current, err := os.Getwd() current, err := os.Getwd()
require.NoError(t, err) require.NoError(t, err)
var tmpdir = testlib.Mktmp(t) tmpdir := testlib.Mktmp(t)
require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata")) require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata"))
testlib.GitInit(t) testlib.GitInit(t)
var msgs = []string{ msgs := []string{
"initial commit", "initial commit",
"another one", "another one",
"one more", "one more",
@ -339,7 +339,7 @@ func TestChangeLogWithReleaseHeader(t *testing.T) {
} }
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
testlib.GitCheckoutBranch(t, "v0.0.1") testlib.GitCheckoutBranch(t, "v0.0.1")
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Git.CurrentTag = "v0.0.1" ctx.Git.CurrentTag = "v0.0.1"
ctx.ReleaseHeader = "testdata/release-header.md" ctx.ReleaseHeader = "testdata/release-header.md"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
@ -350,10 +350,10 @@ func TestChangeLogWithReleaseHeader(t *testing.T) {
func TestChangeLogWithTemplatedReleaseHeader(t *testing.T) { func TestChangeLogWithTemplatedReleaseHeader(t *testing.T) {
current, err := os.Getwd() current, err := os.Getwd()
require.NoError(t, err) require.NoError(t, err)
var tmpdir = testlib.Mktmp(t) tmpdir := testlib.Mktmp(t)
require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata")) require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata"))
testlib.GitInit(t) testlib.GitInit(t)
var msgs = []string{ msgs := []string{
"initial commit", "initial commit",
"another one", "another one",
"one more", "one more",
@ -364,20 +364,21 @@ func TestChangeLogWithTemplatedReleaseHeader(t *testing.T) {
} }
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
testlib.GitCheckoutBranch(t, "v0.0.1") testlib.GitCheckoutBranch(t, "v0.0.1")
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Git.CurrentTag = "v0.0.1" ctx.Git.CurrentTag = "v0.0.1"
ctx.ReleaseHeader = "testdata/release-header-templated.md" ctx.ReleaseHeader = "testdata/release-header-templated.md"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
require.Contains(t, ctx.ReleaseNotes, "## Changelog") require.Contains(t, ctx.ReleaseNotes, "## Changelog")
require.Contains(t, ctx.ReleaseNotes, "test header with tag v0.0.1") require.Contains(t, ctx.ReleaseNotes, "test header with tag v0.0.1")
} }
func TestChangeLogWithReleaseFooter(t *testing.T) { func TestChangeLogWithReleaseFooter(t *testing.T) {
current, err := os.Getwd() current, err := os.Getwd()
require.NoError(t, err) require.NoError(t, err)
var tmpdir = testlib.Mktmp(t) tmpdir := testlib.Mktmp(t)
require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata")) require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata"))
testlib.GitInit(t) testlib.GitInit(t)
var msgs = []string{ msgs := []string{
"initial commit", "initial commit",
"another one", "another one",
"one more", "one more",
@ -388,7 +389,7 @@ func TestChangeLogWithReleaseFooter(t *testing.T) {
} }
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
testlib.GitCheckoutBranch(t, "v0.0.1") testlib.GitCheckoutBranch(t, "v0.0.1")
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Git.CurrentTag = "v0.0.1" ctx.Git.CurrentTag = "v0.0.1"
ctx.ReleaseFooter = "testdata/release-footer.md" ctx.ReleaseFooter = "testdata/release-footer.md"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
@ -400,10 +401,10 @@ func TestChangeLogWithReleaseFooter(t *testing.T) {
func TestChangeLogWithTemplatedReleaseFooter(t *testing.T) { func TestChangeLogWithTemplatedReleaseFooter(t *testing.T) {
current, err := os.Getwd() current, err := os.Getwd()
require.NoError(t, err) require.NoError(t, err)
var tmpdir = testlib.Mktmp(t) tmpdir := testlib.Mktmp(t)
require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata")) require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata"))
testlib.GitInit(t) testlib.GitInit(t)
var msgs = []string{ msgs := []string{
"initial commit", "initial commit",
"another one", "another one",
"one more", "one more",
@ -414,7 +415,7 @@ func TestChangeLogWithTemplatedReleaseFooter(t *testing.T) {
} }
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
testlib.GitCheckoutBranch(t, "v0.0.1") testlib.GitCheckoutBranch(t, "v0.0.1")
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Git.CurrentTag = "v0.0.1" ctx.Git.CurrentTag = "v0.0.1"
ctx.ReleaseFooter = "testdata/release-footer-templated.md" ctx.ReleaseFooter = "testdata/release-footer-templated.md"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
@ -426,10 +427,10 @@ func TestChangeLogWithTemplatedReleaseFooter(t *testing.T) {
func TestChangeLogWithoutReleaseFooter(t *testing.T) { func TestChangeLogWithoutReleaseFooter(t *testing.T) {
current, err := os.Getwd() current, err := os.Getwd()
require.NoError(t, err) require.NoError(t, err)
var tmpdir = testlib.Mktmp(t) tmpdir := testlib.Mktmp(t)
require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata")) require.NoError(t, os.Symlink(current+"/testdata", tmpdir+"/testdata"))
testlib.GitInit(t) testlib.GitInit(t)
var msgs = []string{ msgs := []string{
"initial commit", "initial commit",
"another one", "another one",
"one more", "one more",
@ -440,7 +441,7 @@ func TestChangeLogWithoutReleaseFooter(t *testing.T) {
} }
testlib.GitTag(t, "v0.0.1") testlib.GitTag(t, "v0.0.1")
testlib.GitCheckoutBranch(t, "v0.0.1") testlib.GitCheckoutBranch(t, "v0.0.1")
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Git.CurrentTag = "v0.0.1" ctx.Git.CurrentTag = "v0.0.1"
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
require.Contains(t, ctx.ReleaseNotes, "## Changelog") require.Contains(t, ctx.ReleaseNotes, "## Changelog")

View File

@ -48,10 +48,10 @@ func TestPipe(t *testing.T) {
} }
for name, tt := range tests { for name, tt := range tests {
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var file = filepath.Join(folder, binary) file := filepath.Join(folder, binary)
require.NoError(t, os.WriteFile(file, []byte("some string"), 0644)) require.NoError(t, os.WriteFile(file, []byte("some string"), 0o644))
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: folder, Dist: folder,
ProjectName: binary, ProjectName: binary,
@ -101,12 +101,11 @@ func TestPipe(t *testing.T) {
} }
}) })
} }
} }
func TestPipeSkipTrue(t *testing.T) { func TestPipeSkipTrue(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: folder, Dist: folder,
Checksum: config.Checksum{ Checksum: config.Checksum{
@ -114,14 +113,14 @@ func TestPipeSkipTrue(t *testing.T) {
}, },
}, },
) )
var err = Pipe{}.Run(ctx) err := Pipe{}.Run(ctx)
testlib.AssertSkipped(t, err) testlib.AssertSkipped(t, err)
require.EqualError(t, err, pipe.ErrSkipDisabledPipe.Error()) require.EqualError(t, err, pipe.ErrSkipDisabledPipe.Error())
} }
func TestPipeFileNotExist(t *testing.T) { func TestPipeFileNotExist(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: folder, Dist: folder,
Checksum: config.Checksum{ Checksum: config.Checksum{
@ -135,7 +134,7 @@ func TestPipeFileNotExist(t *testing.T) {
Path: "/nope", Path: "/nope",
Type: artifact.UploadableBinary, Type: artifact.UploadableBinary,
}) })
var err = Pipe{}.Run(ctx) err := Pipe{}.Run(ctx)
require.Error(t, err) require.Error(t, err)
require.Contains(t, err.Error(), "/nope: no such file or directory") require.Contains(t, err.Error(), "/nope: no such file or directory")
} }
@ -152,8 +151,8 @@ func TestPipeInvalidNameTemplate(t *testing.T) {
"{{.Env.NOPE}}": `template: tmpl:1:6: executing "tmpl" at <.Env.NOPE>: map has no entry for key "NOPE"`, "{{.Env.NOPE}}": `template: tmpl:1:6: executing "tmpl" at <.Env.NOPE>: map has no entry for key "NOPE"`,
} { } {
t.Run(template, func(t *testing.T) { t.Run(template, func(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: folder, Dist: folder,
ProjectName: "name", ProjectName: "name",
@ -177,16 +176,16 @@ func TestPipeInvalidNameTemplate(t *testing.T) {
} }
func TestPipeCouldNotOpenChecksumsTxt(t *testing.T) { func TestPipeCouldNotOpenChecksumsTxt(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
binFile, err := ioutil.TempFile(folder, "goreleasertest-bin") binFile, err := ioutil.TempFile(folder, "goreleasertest-bin")
require.NoError(t, err) require.NoError(t, err)
t.Cleanup(func() { require.NoError(t, binFile.Close()) }) t.Cleanup(func() { require.NoError(t, binFile.Close()) })
_, err = binFile.WriteString("fake artifact") _, err = binFile.WriteString("fake artifact")
require.NoError(t, err) require.NoError(t, err)
var file = filepath.Join(folder, "checksums.txt") file := filepath.Join(folder, "checksums.txt")
require.NoError(t, os.WriteFile(file, []byte("some string"), 0000)) require.NoError(t, os.WriteFile(file, []byte("some string"), 0o000))
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: folder, Dist: folder,
Checksum: config.Checksum{ Checksum: config.Checksum{
@ -207,13 +206,13 @@ func TestPipeCouldNotOpenChecksumsTxt(t *testing.T) {
} }
func TestPipeWhenNoArtifacts(t *testing.T) { func TestPipeWhenNoArtifacts(t *testing.T) {
var ctx = &context.Context{} ctx := &context.Context{}
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
require.Len(t, ctx.Artifacts.List(), 0) require.Len(t, ctx.Artifacts.List(), 0)
} }
func TestDefault(t *testing.T) { func TestDefault(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Checksum: config.Checksum{}, Checksum: config.Checksum{},
}, },
@ -228,7 +227,7 @@ func TestDefault(t *testing.T) {
} }
func TestDefaultSet(t *testing.T) { func TestDefaultSet(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Checksum: config.Checksum{ Checksum: config.Checksum{
NameTemplate: "checksums.txt", NameTemplate: "checksums.txt",

View File

@ -18,7 +18,7 @@ func TestFillBasicData(t *testing.T) {
testlib.GitInit(t) testlib.GitInit(t)
testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git") testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git")
var ctx = &context.Context{ ctx := &context.Context{
TokenType: context.TokenTypeGitHub, TokenType: context.TokenTypeGitHub,
Config: config.Project{}, Config: config.Project{},
} }
@ -47,7 +47,7 @@ func TestFillPartial(t *testing.T) {
testlib.GitInit(t) testlib.GitInit(t)
testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git") testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git")
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
GitHubURLs: config.GitHubURLs{ GitHubURLs: config.GitHubURLs{
Download: "https://github.company.com", Download: "https://github.company.com",

View File

@ -49,5 +49,5 @@ func (Pipe) Run(ctx *context.Context) (err error) {
func mkdir(ctx *context.Context) error { func mkdir(ctx *context.Context) error {
// #nosec // #nosec
return os.MkdirAll(ctx.Config.Dist, 0755) return os.MkdirAll(ctx.Config.Dist, 0o755)
} }

View File

@ -11,8 +11,8 @@ import (
) )
func TestDistDoesNotExist(t *testing.T) { func TestDistDoesNotExist(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError( require.NoError(
t, t,
Pipe{}.Run( Pipe{}.Run(
@ -26,13 +26,13 @@ func TestDistDoesNotExist(t *testing.T) {
} }
func TestPopulatedDistExists(t *testing.T) { func TestPopulatedDistExists(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
f, err := os.Create(filepath.Join(dist, "mybin")) f, err := os.Create(filepath.Join(dist, "mybin"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Dist: dist, Dist: dist,
}, },
@ -45,10 +45,10 @@ func TestPopulatedDistExists(t *testing.T) {
} }
func TestEmptyDistExists(t *testing.T) { func TestEmptyDistExists(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Dist: dist, Dist: dist,
}, },

View File

@ -10,8 +10,7 @@ import (
) )
// Pipe that writes the effective config file to dist. // Pipe that writes the effective config file to dist.
type Pipe struct { type Pipe struct{}
}
func (Pipe) String() string { func (Pipe) String() string {
return "writing effective config file" return "writing effective config file"
@ -19,11 +18,11 @@ func (Pipe) String() string {
// Run the pipe. // Run the pipe.
func (Pipe) Run(ctx *context.Context) (err error) { func (Pipe) Run(ctx *context.Context) (err error) {
var path = filepath.Join(ctx.Config.Dist, "config.yaml") path := filepath.Join(ctx.Config.Dist, "config.yaml")
bts, err := yaml.Marshal(ctx.Config) bts, err := yaml.Marshal(ctx.Config)
if err != nil { if err != nil {
return err return err
} }
log.WithField("config", path).Info("writing") log.WithField("config", path).Info("writing")
return os.WriteFile(path, bts, 0644) //nolint: gosec return os.WriteFile(path, bts, 0o644) //nolint: gosec
} }

View File

@ -16,10 +16,10 @@ func TestPipeDescription(t *testing.T) {
} }
func TestRun(t *testing.T) { func TestRun(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
dist := filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New( ctx := context.New(
config.Project{ config.Project{
Dist: dist, Dist: dist,
}, },

View File

@ -28,7 +28,7 @@ func (Pipe) String() string {
} }
func setDefaultTokenFiles(ctx *context.Context) { func setDefaultTokenFiles(ctx *context.Context) {
var env = &ctx.Config.EnvFiles env := &ctx.Config.EnvFiles
if env.GitHubToken == "" { if env.GitHubToken == "" {
env.GitHubToken = "~/.config/goreleaser/github_token" env.GitHubToken = "~/.config/goreleaser/github_token"
} }

View File

@ -37,7 +37,7 @@ func TestSetDefaultTokenFiles(t *testing.T) {
func TestValidGithubEnv(t *testing.T) { func TestValidGithubEnv(t *testing.T) {
require.NoError(t, os.Setenv("GITHUB_TOKEN", "asdf")) require.NoError(t, os.Setenv("GITHUB_TOKEN", "asdf"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
@ -49,7 +49,7 @@ func TestValidGithubEnv(t *testing.T) {
func TestValidGitlabEnv(t *testing.T) { func TestValidGitlabEnv(t *testing.T) {
require.NoError(t, os.Setenv("GITLAB_TOKEN", "qwertz")) require.NoError(t, os.Setenv("GITLAB_TOKEN", "qwertz"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
@ -61,7 +61,7 @@ func TestValidGitlabEnv(t *testing.T) {
func TestValidGiteaEnv(t *testing.T) { func TestValidGiteaEnv(t *testing.T) {
require.NoError(t, os.Setenv("GITEA_TOKEN", "token")) require.NoError(t, os.Setenv("GITEA_TOKEN", "token"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
@ -74,7 +74,7 @@ func TestValidGiteaEnv(t *testing.T) {
func TestInvalidEnv(t *testing.T) { func TestInvalidEnv(t *testing.T) {
require.NoError(t, os.Unsetenv("GITHUB_TOKEN")) require.NoError(t, os.Unsetenv("GITHUB_TOKEN"))
require.NoError(t, os.Unsetenv("GITLAB_TOKEN")) require.NoError(t, os.Unsetenv("GITLAB_TOKEN"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
require.Error(t, Pipe{}.Run(ctx)) require.Error(t, Pipe{}.Run(ctx))
@ -85,7 +85,7 @@ func TestMultipleEnvTokens(t *testing.T) {
require.NoError(t, os.Setenv("GITHUB_TOKEN", "asdf")) require.NoError(t, os.Setenv("GITHUB_TOKEN", "asdf"))
require.NoError(t, os.Setenv("GITLAB_TOKEN", "qwertz")) require.NoError(t, os.Setenv("GITLAB_TOKEN", "qwertz"))
require.NoError(t, os.Setenv("GITEA_TOKEN", "token")) require.NoError(t, os.Setenv("GITEA_TOKEN", "token"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
require.Error(t, Pipe{}.Run(ctx)) require.Error(t, Pipe{}.Run(ctx))
@ -98,7 +98,7 @@ func TestMultipleEnvTokens(t *testing.T) {
func TestEmptyGithubFileEnv(t *testing.T) { func TestEmptyGithubFileEnv(t *testing.T) {
require.NoError(t, os.Unsetenv("GITHUB_TOKEN")) require.NoError(t, os.Unsetenv("GITHUB_TOKEN"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
require.Error(t, Pipe{}.Run(ctx)) require.Error(t, Pipe{}.Run(ctx))
@ -106,7 +106,7 @@ func TestEmptyGithubFileEnv(t *testing.T) {
func TestEmptyGitlabFileEnv(t *testing.T) { func TestEmptyGitlabFileEnv(t *testing.T) {
require.NoError(t, os.Unsetenv("GITLAB_TOKEN")) require.NoError(t, os.Unsetenv("GITLAB_TOKEN"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
require.Error(t, Pipe{}.Run(ctx)) require.Error(t, Pipe{}.Run(ctx))
@ -114,7 +114,7 @@ func TestEmptyGitlabFileEnv(t *testing.T) {
func TestEmptyGiteaFileEnv(t *testing.T) { func TestEmptyGiteaFileEnv(t *testing.T) {
require.NoError(t, os.Unsetenv("GITEA_TOKEN")) require.NoError(t, os.Unsetenv("GITEA_TOKEN"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
require.Error(t, Pipe{}.Run(ctx)) require.Error(t, Pipe{}.Run(ctx))
@ -125,8 +125,8 @@ func TestEmptyGithubEnvFile(t *testing.T) {
f, err := ioutil.TempFile(t.TempDir(), "token") f, err := ioutil.TempFile(t.TempDir(), "token")
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
require.NoError(t, os.Chmod(f.Name(), 0377)) require.NoError(t, os.Chmod(f.Name(), 0o377))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
EnvFiles: config.EnvFiles{ EnvFiles: config.EnvFiles{
GitHubToken: f.Name(), GitHubToken: f.Name(),
@ -141,8 +141,8 @@ func TestEmptyGitlabEnvFile(t *testing.T) {
f, err := ioutil.TempFile(t.TempDir(), "token") f, err := ioutil.TempFile(t.TempDir(), "token")
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
require.NoError(t, os.Chmod(f.Name(), 0377)) require.NoError(t, os.Chmod(f.Name(), 0o377))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
EnvFiles: config.EnvFiles{ EnvFiles: config.EnvFiles{
GitLabToken: f.Name(), GitLabToken: f.Name(),
@ -157,8 +157,8 @@ func TestEmptyGiteaEnvFile(t *testing.T) {
f, err := ioutil.TempFile(t.TempDir(), "token") f, err := ioutil.TempFile(t.TempDir(), "token")
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
require.NoError(t, os.Chmod(f.Name(), 0377)) require.NoError(t, os.Chmod(f.Name(), 0o377))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
EnvFiles: config.EnvFiles{ EnvFiles: config.EnvFiles{
GiteaToken: f.Name(), GiteaToken: f.Name(),
@ -170,7 +170,7 @@ func TestEmptyGiteaEnvFile(t *testing.T) {
func TestInvalidEnvChecksSkipped(t *testing.T) { func TestInvalidEnvChecksSkipped(t *testing.T) {
require.NoError(t, os.Unsetenv("GITHUB_TOKEN")) require.NoError(t, os.Unsetenv("GITHUB_TOKEN"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
SkipPublish: true, SkipPublish: true,
} }
@ -179,7 +179,7 @@ func TestInvalidEnvChecksSkipped(t *testing.T) {
func TestInvalidEnvReleaseDisabled(t *testing.T) { func TestInvalidEnvReleaseDisabled(t *testing.T) {
require.NoError(t, os.Unsetenv("GITHUB_TOKEN")) require.NoError(t, os.Unsetenv("GITHUB_TOKEN"))
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Release: config.Release{ Release: config.Release{
Disable: true, Disable: true,
@ -191,14 +191,14 @@ func TestInvalidEnvReleaseDisabled(t *testing.T) {
func TestLoadEnv(t *testing.T) { func TestLoadEnv(t *testing.T) {
t.Run("env exists", func(t *testing.T) { t.Run("env exists", func(t *testing.T) {
var env = "SUPER_SECRET_ENV" env := "SUPER_SECRET_ENV"
require.NoError(t, os.Setenv(env, "1")) require.NoError(t, os.Setenv(env, "1"))
v, err := loadEnv(env, "nope") v, err := loadEnv(env, "nope")
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "1", v) require.Equal(t, "1", v)
}) })
t.Run("env file exists", func(t *testing.T) { t.Run("env file exists", func(t *testing.T) {
var env = "SUPER_SECRET_ENV_NOPE" env := "SUPER_SECRET_ENV_NOPE"
require.NoError(t, os.Unsetenv(env)) require.NoError(t, os.Unsetenv(env))
f, err := ioutil.TempFile(t.TempDir(), "token") f, err := ioutil.TempFile(t.TempDir(), "token")
require.NoError(t, err) require.NoError(t, err)
@ -209,7 +209,7 @@ func TestLoadEnv(t *testing.T) {
require.Equal(t, "123", v) require.Equal(t, "123", v)
}) })
t.Run("env file with an empty line at the end", func(t *testing.T) { t.Run("env file with an empty line at the end", func(t *testing.T) {
var env = "SUPER_SECRET_ENV_NOPE" env := "SUPER_SECRET_ENV_NOPE"
require.NoError(t, os.Unsetenv(env)) require.NoError(t, os.Unsetenv(env))
f, err := ioutil.TempFile(t.TempDir(), "token") f, err := ioutil.TempFile(t.TempDir(), "token")
require.NoError(t, err) require.NoError(t, err)
@ -220,13 +220,13 @@ func TestLoadEnv(t *testing.T) {
require.Equal(t, "123", v) require.Equal(t, "123", v)
}) })
t.Run("env file is not readable", func(t *testing.T) { t.Run("env file is not readable", func(t *testing.T) {
var env = "SUPER_SECRET_ENV_NOPE" env := "SUPER_SECRET_ENV_NOPE"
require.NoError(t, os.Unsetenv(env)) require.NoError(t, os.Unsetenv(env))
f, err := ioutil.TempFile(t.TempDir(), "token") f, err := ioutil.TempFile(t.TempDir(), "token")
require.NoError(t, err) require.NoError(t, err)
fmt.Fprintf(f, "123") fmt.Fprintf(f, "123")
require.NoError(t, f.Close()) require.NoError(t, f.Close())
err = os.Chmod(f.Name(), 0377) err = os.Chmod(f.Name(), 0o377)
require.NoError(t, err) require.NoError(t, err)
v, err := loadEnv(env, f.Name()) v, err := loadEnv(env, f.Name())
require.EqualError(t, err, fmt.Sprintf("open %s: permission denied", f.Name())) require.EqualError(t, err, fmt.Sprintf("open %s: permission denied", f.Name()))

View File

@ -18,7 +18,7 @@ func TestDefaultWithRepoConfig(t *testing.T) {
testlib.GitInit(t) testlib.GitInit(t)
testlib.GitRemoteAdd(t, "git@github.com:githubowner/githubrepo.git") testlib.GitRemoteAdd(t, "git@github.com:githubowner/githubrepo.git")
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Milestones: []config.Milestone{ Milestones: []config.Milestone{
{ {
@ -41,7 +41,7 @@ func TestDefaultWithRepoRemote(t *testing.T) {
testlib.GitInit(t) testlib.GitInit(t)
testlib.GitRemoteAdd(t, "git@github.com:githubowner/githubrepo.git") testlib.GitRemoteAdd(t, "git@github.com:githubowner/githubrepo.git")
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.TokenType = context.TokenTypeGitHub ctx.TokenType = context.TokenTypeGitHub
require.NoError(t, Pipe{}.Default(ctx)) require.NoError(t, Pipe{}.Default(ctx))
require.Equal(t, "githubrepo", ctx.Config.Milestones[0].Repo.Name) require.Equal(t, "githubrepo", ctx.Config.Milestones[0].Repo.Name)
@ -49,7 +49,7 @@ func TestDefaultWithRepoRemote(t *testing.T) {
} }
func TestDefaultWithNameTemplate(t *testing.T) { func TestDefaultWithNameTemplate(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Milestones: []config.Milestone{ Milestones: []config.Milestone{
{ {
@ -64,7 +64,7 @@ func TestDefaultWithNameTemplate(t *testing.T) {
func TestDefaultWithoutGitRepo(t *testing.T) { func TestDefaultWithoutGitRepo(t *testing.T) {
testlib.Mktmp(t) testlib.Mktmp(t)
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
ctx.TokenType = context.TokenTypeGitHub ctx.TokenType = context.TokenTypeGitHub
@ -74,7 +74,7 @@ func TestDefaultWithoutGitRepo(t *testing.T) {
func TestDefaultWithoutGitRepoOrigin(t *testing.T) { func TestDefaultWithoutGitRepoOrigin(t *testing.T) {
testlib.Mktmp(t) testlib.Mktmp(t)
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
ctx.TokenType = context.TokenTypeGitHub ctx.TokenType = context.TokenTypeGitHub
@ -85,7 +85,7 @@ func TestDefaultWithoutGitRepoOrigin(t *testing.T) {
func TestDefaultWithoutGitRepoSnapshot(t *testing.T) { func TestDefaultWithoutGitRepoSnapshot(t *testing.T) {
testlib.Mktmp(t) testlib.Mktmp(t)
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{}, Config: config.Project{},
} }
ctx.TokenType = context.TokenTypeGitHub ctx.TokenType = context.TokenTypeGitHub
@ -95,7 +95,7 @@ func TestDefaultWithoutGitRepoSnapshot(t *testing.T) {
} }
func TestDefaultWithoutNameTemplate(t *testing.T) { func TestDefaultWithoutNameTemplate(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Milestones: []config.Milestone{}, Milestones: []config.Milestone{},
}, },
@ -109,7 +109,7 @@ func TestString(t *testing.T) {
} }
func TestPublishCloseDisabled(t *testing.T) { func TestPublishCloseDisabled(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Milestones: []config.Milestone{ Milestones: []config.Milestone{
{ {
Close: false, Close: false,
@ -122,7 +122,7 @@ func TestPublishCloseDisabled(t *testing.T) {
} }
func TestPublishCloseEnabled(t *testing.T) { func TestPublishCloseEnabled(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Milestones: []config.Milestone{ Milestones: []config.Milestone{
{ {
Close: true, Close: true,
@ -141,7 +141,7 @@ func TestPublishCloseEnabled(t *testing.T) {
} }
func TestPublishCloseError(t *testing.T) { func TestPublishCloseError(t *testing.T) {
var config = config.Project{ config := config.Project{
Milestones: []config.Milestone{ Milestones: []config.Milestone{
{ {
Close: true, Close: true,
@ -153,7 +153,7 @@ func TestPublishCloseError(t *testing.T) {
}, },
}, },
} }
var ctx = context.New(config) ctx := context.New(config)
ctx.Git.CurrentTag = "v1.0.0" ctx.Git.CurrentTag = "v1.0.0"
client := &DummyClient{ client := &DummyClient{
FailToCloseMilestone: true, FailToCloseMilestone: true,
@ -163,7 +163,7 @@ func TestPublishCloseError(t *testing.T) {
} }
func TestPublishCloseFailOnError(t *testing.T) { func TestPublishCloseFailOnError(t *testing.T) {
var config = config.Project{ config := config.Project{
Milestones: []config.Milestone{ Milestones: []config.Milestone{
{ {
Close: true, Close: true,
@ -176,7 +176,7 @@ func TestPublishCloseFailOnError(t *testing.T) {
}, },
}, },
} }
var ctx = context.New(config) ctx := context.New(config)
ctx.Git.CurrentTag = "v1.0.0" ctx.Git.CurrentTag = "v1.0.0"
client := &DummyClient{ client := &DummyClient{
FailToCloseMilestone: true, FailToCloseMilestone: true,

View File

@ -24,7 +24,7 @@ var ErrSkipValidateEnabled = Skip("validation is disabled")
// ErrSkipDisabledPipe happens when a pipe is skipped because it is not configured. // ErrSkipDisabledPipe happens when a pipe is skipped because it is not configured.
var ErrSkipDisabledPipe = ErrSkip{ var ErrSkipDisabledPipe = ErrSkip{
reason: "pipe not configured/disabled", reason: "pipe not configured/disabled",
expected: true, expected: true,
} }

View File

@ -10,7 +10,7 @@ import (
) )
func TestCustomProjectName(t *testing.T) { func TestCustomProjectName(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "foo", ProjectName: "foo",
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
@ -24,7 +24,7 @@ func TestCustomProjectName(t *testing.T) {
} }
func TestEmptyProjectName_DefaultsToGitHubRelease(t *testing.T) { func TestEmptyProjectName_DefaultsToGitHubRelease(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{ GitHub: config.Repo{
Owner: "bar", Owner: "bar",
@ -37,7 +37,7 @@ func TestEmptyProjectName_DefaultsToGitHubRelease(t *testing.T) {
} }
func TestEmptyProjectName_DefaultsToGitLabRelease(t *testing.T) { func TestEmptyProjectName_DefaultsToGitLabRelease(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Release: config.Release{ Release: config.Release{
GitLab: config.Repo{ GitLab: config.Repo{
Owner: "bar", Owner: "bar",
@ -50,7 +50,7 @@ func TestEmptyProjectName_DefaultsToGitLabRelease(t *testing.T) {
} }
func TestEmptyProjectName_DefaultsToGiteaRelease(t *testing.T) { func TestEmptyProjectName_DefaultsToGiteaRelease(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Release: config.Release{ Release: config.Release{
Gitea: config.Repo{ Gitea: config.Repo{
Owner: "bar", Owner: "bar",
@ -63,7 +63,7 @@ func TestEmptyProjectName_DefaultsToGiteaRelease(t *testing.T) {
} }
func TestEmptyProjectNameAndRelease(t *testing.T) { func TestEmptyProjectNameAndRelease(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Release: config.Release{ Release: config.Release{
GitHub: config.Repo{}, GitHub: config.Repo{},
}, },

View File

@ -13,7 +13,7 @@ func TestDescription(t *testing.T) {
} }
func TestPublish(t *testing.T) { func TestPublish(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Config.Release.Disable = true ctx.Config.Release.Disable = true
ctx.TokenType = context.TokenTypeGitHub ctx.TokenType = context.TokenTypeGitHub
for i := range ctx.Config.Dockers { for i := range ctx.Config.Dockers {

View File

@ -31,7 +31,7 @@ func describeBody(ctx *context.Context) (bytes.Buffer, error) {
dockers = append(dockers, a.Name) dockers = append(dockers, a.Name)
} }
} }
var bodyTemplate = template.Must(template.New("release").Parse(bodyTemplateText)) bodyTemplate := template.Must(template.New("release").Parse(bodyTemplateText))
err := bodyTemplate.Execute(&out, struct { err := bodyTemplate.Execute(&out, struct {
ReleaseNotes string ReleaseNotes string
DockerImages []string DockerImages []string

View File

@ -14,8 +14,8 @@ import (
var update = flag.Bool("update", false, "update .golden files") var update = flag.Bool("update", false, "update .golden files")
func TestDescribeBody(t *testing.T) { func TestDescribeBody(t *testing.T) {
var changelog = "feature1: description\nfeature2: other description" changelog := "feature1: description\nfeature2: other description"
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.ReleaseNotes = changelog ctx.ReleaseNotes = changelog
for _, d := range []string{ for _, d := range []string{
"goreleaser/goreleaser:0.40.0", "goreleaser/goreleaser:0.40.0",
@ -30,9 +30,9 @@ func TestDescribeBody(t *testing.T) {
out, err := describeBody(ctx) out, err := describeBody(ctx)
require.NoError(t, err) require.NoError(t, err)
var golden = "testdata/release1.golden" golden := "testdata/release1.golden"
if *update { if *update {
_ = os.WriteFile(golden, out.Bytes(), 0755) _ = os.WriteFile(golden, out.Bytes(), 0o755)
} }
bts, err := os.ReadFile(golden) bts, err := os.ReadFile(golden)
require.NoError(t, err) require.NoError(t, err)
@ -40,8 +40,8 @@ func TestDescribeBody(t *testing.T) {
} }
func TestDescribeBodyWithDockerManifest(t *testing.T) { func TestDescribeBodyWithDockerManifest(t *testing.T) {
var changelog = "feature1: description\nfeature2: other description" changelog := "feature1: description\nfeature2: other description"
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.ReleaseNotes = changelog ctx.ReleaseNotes = changelog
for _, d := range []string{ for _, d := range []string{
"goreleaser/goreleaser:0.40.0", "goreleaser/goreleaser:0.40.0",
@ -69,9 +69,9 @@ func TestDescribeBodyWithDockerManifest(t *testing.T) {
out, err := describeBody(ctx) out, err := describeBody(ctx)
require.NoError(t, err) require.NoError(t, err)
var golden = "testdata/release3.golden" golden := "testdata/release3.golden"
if *update { if *update {
_ = os.WriteFile(golden, out.Bytes(), 0755) _ = os.WriteFile(golden, out.Bytes(), 0o755)
} }
bts, err := os.ReadFile(golden) bts, err := os.ReadFile(golden)
require.NoError(t, err) require.NoError(t, err)
@ -79,16 +79,16 @@ func TestDescribeBodyWithDockerManifest(t *testing.T) {
} }
func TestDescribeBodyNoDockerImagesNoBrews(t *testing.T) { func TestDescribeBodyNoDockerImagesNoBrews(t *testing.T) {
var changelog = "feature1: description\nfeature2: other description" changelog := "feature1: description\nfeature2: other description"
var ctx = &context.Context{ ctx := &context.Context{
ReleaseNotes: changelog, ReleaseNotes: changelog,
} }
out, err := describeBody(ctx) out, err := describeBody(ctx)
require.NoError(t, err) require.NoError(t, err)
var golden = "testdata/release2.golden" golden := "testdata/release2.golden"
if *update { if *update {
_ = os.WriteFile(golden, out.Bytes(), 0655) _ = os.WriteFile(golden, out.Bytes(), 0o655)
} }
bts, err := os.ReadFile(golden) bts, err := os.ReadFile(golden)
require.NoError(t, err) require.NoError(t, err)
@ -97,8 +97,8 @@ func TestDescribeBodyNoDockerImagesNoBrews(t *testing.T) {
} }
func TestDontEscapeHTML(t *testing.T) { func TestDontEscapeHTML(t *testing.T) {
var changelog = "<h1>test</h1>" changelog := "<h1>test</h1>"
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.ReleaseNotes = changelog ctx.ReleaseNotes = changelog
out, err := describeBody(ctx) out, err := describeBody(ctx)

View File

@ -25,7 +25,7 @@ func TestDescription(t *testing.T) {
func TestDefault(t *testing.T) { func TestDefault(t *testing.T) {
testlib.Mktmp(t) testlib.Mktmp(t)
var ctx = &context.Context{ ctx := &context.Context{
TokenType: context.TokenTypeGitHub, TokenType: context.TokenTypeGitHub,
Config: config.Project{ Config: config.Project{
ProjectName: "barr", ProjectName: "barr",
@ -59,19 +59,19 @@ func TestDefault(t *testing.T) {
} }
func Test_doRun(t *testing.T) { func Test_doRun(t *testing.T) {
var folder = testlib.Mktmp(t) folder := testlib.Mktmp(t)
var file = filepath.Join(folder, "archive") file := filepath.Join(folder, "archive")
require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0644)) require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0o644))
type errChecker func(*testing.T, error) type errChecker func(*testing.T, error)
var shouldErr = func(msg string) errChecker { shouldErr := func(msg string) errChecker {
return func(t *testing.T, err error) { return func(t *testing.T, err error) {
t.Helper() t.Helper()
require.Error(t, err) require.Error(t, err)
require.EqualError(t, err, msg) require.EqualError(t, err, msg)
} }
} }
var shouldNotErr = func(t *testing.T, err error) { shouldNotErr := func(t *testing.T, err error) {
t.Helper() t.Helper()
require.NoError(t, err) require.NoError(t, err)
} }
@ -731,7 +731,7 @@ func Test_doRun(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
var ctx = tt.args.ctx ctx := tt.args.ctx
for _, a := range tt.artifacts { for _, a := range tt.artifacts {
ctx.Artifacts.Add(a) ctx.Artifacts.Add(a)
} }
@ -743,9 +743,9 @@ func Test_doRun(t *testing.T) {
} }
func Test_buildManifest(t *testing.T) { func Test_buildManifest(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var file = filepath.Join(folder, "archive") file := filepath.Join(folder, "archive")
require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0644)) require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0o644))
tests := []struct { tests := []struct {
filename string filename string
@ -915,7 +915,7 @@ func Test_buildManifest(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.filename, func(t *testing.T) { t.Run(tt.filename, func(t *testing.T) {
var ctx = tt.ctx ctx := tt.ctx
err := Pipe{}.Default(ctx) err := Pipe{}.Default(ctx)
require.NoError(t, err) require.NoError(t, err)
@ -981,7 +981,7 @@ func Test_buildManifest(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
if *update { if *update {
require.NoError(t, os.WriteFile(tt.filename, out.Bytes(), 0655)) require.NoError(t, os.WriteFile(tt.filename, out.Bytes(), 0o655))
} }
bts, err := os.ReadFile(tt.filename) bts, err := os.ReadFile(tt.filename)
require.NoError(t, err) require.NoError(t, err)
@ -991,10 +991,10 @@ func Test_buildManifest(t *testing.T) {
} }
func TestWrapInDirectory(t *testing.T) { func TestWrapInDirectory(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var file = filepath.Join(folder, "archive") file := filepath.Join(folder, "archive")
require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0644)) require.NoError(t, os.WriteFile(file, []byte("lorem ipsum"), 0o644))
var ctx = &context.Context{ ctx := &context.Context{
TokenType: context.TokenTypeGitLab, TokenType: context.TokenTypeGitLab,
Git: context.GitInfo{ Git: context.GitInfo{
CurrentTag: "v1.0.1", CurrentTag: "v1.0.1",
@ -1060,9 +1060,9 @@ func TestWrapInDirectory(t *testing.T) {
out, err := doBuildManifest(mf) out, err := doBuildManifest(mf)
require.NoError(t, err) require.NoError(t, err)
var golden = "testdata/test_buildmanifest_wrap.json.golden" golden := "testdata/test_buildmanifest_wrap.json.golden"
if *update { if *update {
require.NoError(t, os.WriteFile(golden, out.Bytes(), 0655)) require.NoError(t, os.WriteFile(golden, out.Bytes(), 0o655))
} }
bts, err := os.ReadFile(golden) bts, err := os.ReadFile(golden)
require.NoError(t, err) require.NoError(t, err)

View File

@ -28,7 +28,7 @@ func (Pipe) String() string {
// Default sets the Pipes defaults. // Default sets the Pipes defaults.
func (Pipe) Default(ctx *context.Context) error { func (Pipe) Default(ctx *context.Context) error {
var ids = ids.New("signs") ids := ids.New("signs")
for i := range ctx.Config.Signs { for i := range ctx.Config.Signs {
cfg := &ctx.Config.Signs[i] cfg := &ctx.Config.Signs[i]
if cfg.Cmd == "" { if cfg.Cmd == "" {
@ -57,7 +57,7 @@ func (Pipe) Run(ctx *context.Context) error {
return pipe.ErrSkipSignEnabled return pipe.ErrSkipSignEnabled
} }
var g = semerrgroup.New(ctx.Parallelism) g := semerrgroup.New(ctx.Parallelism)
for i := range ctx.Config.Signs { for i := range ctx.Config.Signs {
cfg := ctx.Config.Signs[i] cfg := ctx.Config.Signs[i]
g.Go(func() error { g.Go(func() error {
@ -114,7 +114,7 @@ func signone(ctx *context.Context, cfg config.Sign, a *artifact.Artifact) (*arti
// nolint:prealloc // nolint:prealloc
var args []string var args []string
for _, a := range cfg.Args { for _, a := range cfg.Args {
var arg = expand(a, env) arg := expand(a, env)
arg, err := tmpl.New(ctx).WithEnv(env).Apply(arg) arg, err := tmpl.New(ctx).WithEnv(env).Apply(arg)
if err != nil { if err != nil {
return nil, fmt.Errorf("sign failed: %s: invalid template: %w", a, err) return nil, fmt.Errorf("sign failed: %s: invalid template: %w", a, err)

View File

@ -74,9 +74,9 @@ func (Pipe) String() string {
// Default sets the pipe defaults. // Default sets the pipe defaults.
func (Pipe) Default(ctx *context.Context) error { func (Pipe) Default(ctx *context.Context) error {
var ids = ids.New("snapcrafts") ids := ids.New("snapcrafts")
for i := range ctx.Config.Snapcrafts { for i := range ctx.Config.Snapcrafts {
var snap = &ctx.Config.Snapcrafts[i] snap := &ctx.Config.Snapcrafts[i]
if snap.NameTemplate == "" { if snap.NameTemplate == "" {
snap.NameTemplate = defaultNameTemplate snap.NameTemplate = defaultNameTemplate
} }
@ -116,7 +116,7 @@ func doRun(ctx *context.Context, snap config.Snapcraft) error {
return ErrNoSnapcraft return ErrNoSnapcraft
} }
var g = semerrgroup.New(ctx.Parallelism) g := semerrgroup.New(ctx.Parallelism)
for platform, binaries := range ctx.Artifacts.Filter( for platform, binaries := range ctx.Artifacts.Filter(
artifact.And( artifact.And(
artifact.ByGoos("linux"), artifact.ByGoos("linux"),
@ -153,7 +153,7 @@ func (Pipe) Publish(ctx *context.Context) error {
return pipe.ErrSkipPublishEnabled return pipe.ErrSkipPublishEnabled
} }
snaps := ctx.Artifacts.Filter(artifact.ByType(artifact.PublishableSnapcraft)).List() snaps := ctx.Artifacts.Filter(artifact.ByType(artifact.PublishableSnapcraft)).List()
var g = semerrgroup.New(ctx.Parallelism) g := semerrgroup.New(ctx.Parallelism)
for _, snap := range snaps { for _, snap := range snaps {
snap := snap snap := snap
g.Go(func() error { g.Go(func() error {
@ -164,7 +164,7 @@ func (Pipe) Publish(ctx *context.Context) error {
} }
func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries []*artifact.Artifact) error { func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries []*artifact.Artifact) error {
var log = log.WithField("arch", arch) log := log.WithField("arch", arch)
folder, err := tmpl.New(ctx). folder, err := tmpl.New(ctx).
WithArtifact(binaries[0], snap.Replacements). WithArtifact(binaries[0], snap.Replacements).
Apply(snap.NameTemplate) Apply(snap.NameTemplate)
@ -173,11 +173,11 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
} }
// prime is the directory that then will be compressed to make the .snap package. // prime is the directory that then will be compressed to make the .snap package.
var folderDir = filepath.Join(ctx.Config.Dist, folder) folderDir := filepath.Join(ctx.Config.Dist, folder)
var primeDir = filepath.Join(folderDir, "prime") primeDir := filepath.Join(folderDir, "prime")
var metaDir = filepath.Join(primeDir, "meta") metaDir := filepath.Join(primeDir, "meta")
// #nosec // #nosec
if err = os.MkdirAll(metaDir, 0755); err != nil { if err = os.MkdirAll(metaDir, 0o755); err != nil {
return err return err
} }
@ -186,9 +186,9 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
file.Destination = file.Source file.Destination = file.Source
} }
if file.Mode == 0 { if file.Mode == 0 {
file.Mode = 0644 file.Mode = 0o644
} }
if err := os.MkdirAll(filepath.Join(primeDir, filepath.Dir(file.Destination)), 0755); err != nil { if err := os.MkdirAll(filepath.Join(primeDir, filepath.Dir(file.Destination)), 0o755); err != nil {
return fmt.Errorf("failed to link extra file '%s': %w", file.Source, err) return fmt.Errorf("failed to link extra file '%s': %w", file.Source, err)
} }
if err := link(file.Source, filepath.Join(primeDir, file.Destination), os.FileMode(file.Mode)); err != nil { if err := link(file.Source, filepath.Join(primeDir, file.Destination), os.FileMode(file.Mode)); err != nil {
@ -196,10 +196,10 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
} }
} }
var file = filepath.Join(primeDir, "meta", "snap.yaml") file := filepath.Join(primeDir, "meta", "snap.yaml")
log.WithField("file", file).Debug("creating snap metadata") log.WithField("file", file).Debug("creating snap metadata")
var metadata = &Metadata{ metadata := &Metadata{
Version: ctx.Version, Version: ctx.Version,
Summary: snap.Summary, Summary: snap.Summary,
Description: snap.Description, Description: snap.Description,
@ -235,7 +235,7 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
// if the user didn't specify any apps then // if the user didn't specify any apps then
// default to the main binary being the command: // default to the main binary being the command:
if len(snap.Apps) == 0 { if len(snap.Apps) == 0 {
var name = snap.Name name := snap.Name
if name == "" { if name == "" {
name = binaries[0].Name name = binaries[0].Name
} }
@ -254,7 +254,7 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
if err = os.Link(binary.Path, destBinaryPath); err != nil { if err = os.Link(binary.Path, destBinaryPath); err != nil {
return fmt.Errorf("failed to link binary: %w", err) return fmt.Errorf("failed to link binary: %w", err)
} }
if err := os.Chmod(destBinaryPath, 0555); err != nil { if err := os.Chmod(destBinaryPath, 0o555); err != nil {
return fmt.Errorf("failed to change binary permissions: %w", err) return fmt.Errorf("failed to change binary permissions: %w", err)
} }
} }
@ -280,7 +280,7 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
if config.Completer != "" { if config.Completer != "" {
destCompleterPath := filepath.Join(primeDir, config.Completer) destCompleterPath := filepath.Join(primeDir, config.Completer)
if err := os.MkdirAll(filepath.Dir(destCompleterPath), 0755); err != nil { if err := os.MkdirAll(filepath.Dir(destCompleterPath), 0o755); err != nil {
return fmt.Errorf("failed to create folder: %w", err) return fmt.Errorf("failed to create folder: %w", err)
} }
log.WithField("src", config.Completer). log.WithField("src", config.Completer).
@ -289,7 +289,7 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
if err := os.Link(config.Completer, destCompleterPath); err != nil { if err := os.Link(config.Completer, destCompleterPath); err != nil {
return fmt.Errorf("failed to link completer: %w", err) return fmt.Errorf("failed to link completer: %w", err)
} }
if err := os.Chmod(destCompleterPath, 0644); err != nil { if err := os.Chmod(destCompleterPath, 0o644); err != nil {
return fmt.Errorf("failed to change completer permissions: %w", err) return fmt.Errorf("failed to change completer permissions: %w", err)
} }
appMetadata.Completer = config.Completer appMetadata.Completer = config.Completer
@ -305,14 +305,14 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
} }
log.WithField("file", file).Debugf("writing metadata file") log.WithField("file", file).Debugf("writing metadata file")
if err = os.WriteFile(file, out, 0644); err != nil { //nolint: gosec if err = os.WriteFile(file, out, 0o644); err != nil { //nolint: gosec
return err return err
} }
var snapFile = filepath.Join(ctx.Config.Dist, folder+".snap") snapFile := filepath.Join(ctx.Config.Dist, folder+".snap")
log.WithField("snap", snapFile).Info("creating") log.WithField("snap", snapFile).Info("creating")
/* #nosec */ /* #nosec */
var cmd = exec.CommandContext(ctx, "snapcraft", "pack", primeDir, "--output", snapFile) cmd := exec.CommandContext(ctx, "snapcraft", "pack", primeDir, "--output", snapFile)
if out, err = cmd.CombinedOutput(); err != nil { if out, err = cmd.CombinedOutput(); err != nil {
return fmt.Errorf("failed to generate snap package: %s", string(out)) return fmt.Errorf("failed to generate snap package: %s", string(out))
} }
@ -333,11 +333,11 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
const reviewWaitMsg = `Waiting for previous upload(s) to complete their review process.` const reviewWaitMsg = `Waiting for previous upload(s) to complete their review process.`
func push(ctx *context.Context, snap *artifact.Artifact) error { func push(ctx *context.Context, snap *artifact.Artifact) error {
var log = log.WithField("snap", snap.Name) log := log.WithField("snap", snap.Name)
log.Info("pushing snap") log.Info("pushing snap")
// TODO: customize --release based on snap.Grade? // TODO: customize --release based on snap.Grade?
/* #nosec */ /* #nosec */
var cmd = exec.CommandContext(ctx, "snapcraft", "upload", "--release=stable", snap.Path) cmd := exec.CommandContext(ctx, "snapcraft", "upload", "--release=stable", snap.Path)
if out, err := cmd.CombinedOutput(); err != nil { if out, err := cmd.CombinedOutput(); err != nil {
if strings.Contains(string(out), reviewWaitMsg) { if strings.Contains(string(out), reviewWaitMsg) {
log.Warn(reviewWaitMsg) log.Warn(reviewWaitMsg)
@ -361,7 +361,7 @@ func link(src, dest string, mode os.FileMode) error {
// - dest = "dist/linuxamd64/b" // - dest = "dist/linuxamd64/b"
// - path = "a/b/c.txt" // - path = "a/b/c.txt"
// So we join "a/b" with "c.txt" and use it as the destination. // So we join "a/b" with "c.txt" and use it as the destination.
var dst = filepath.Join(dest, strings.Replace(path, src, "", 1)) dst := filepath.Join(dest, strings.Replace(path, src, "", 1))
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"src": path, "src": path,
"dst": dst, "dst": dst,

View File

@ -31,7 +31,7 @@ func TestRunPipeMissingInfo(t *testing.T) {
pipe.Skip("no summary nor description were provided"): {}, pipe.Skip("no summary nor description were provided"): {},
} { } {
t.Run(fmt.Sprintf("testing if %v happens", eerr), func(t *testing.T) { t.Run(fmt.Sprintf("testing if %v happens", eerr), func(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
snap, snap,
@ -44,10 +44,10 @@ func TestRunPipeMissingInfo(t *testing.T) {
} }
func TestRunPipe(t *testing.T) { func TestRunPipe(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "mybin", ProjectName: "mybin",
Dist: dist, Dist: dist,
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
@ -84,10 +84,10 @@ func TestRunPipe(t *testing.T) {
} }
func TestRunPipeInvalidNameTemplate(t *testing.T) { func TestRunPipeInvalidNameTemplate(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "foo", ProjectName: "foo",
Dist: dist, Dist: dist,
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
@ -106,10 +106,10 @@ func TestRunPipeInvalidNameTemplate(t *testing.T) {
} }
func TestRunPipeWithName(t *testing.T) { func TestRunPipeWithName(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "testprojectname", ProjectName: "testprojectname",
Dist: dist, Dist: dist,
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
@ -140,10 +140,10 @@ func TestRunPipeWithName(t *testing.T) {
} }
func TestRunPipeMetadata(t *testing.T) { func TestRunPipeMetadata(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "testprojectname", ProjectName: "testprojectname",
Dist: dist, Dist: dist,
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
@ -193,12 +193,12 @@ func TestRunPipeMetadata(t *testing.T) {
} }
func TestNoSnapcraftInPath(t *testing.T) { func TestNoSnapcraftInPath(t *testing.T) {
var path = os.Getenv("PATH") path := os.Getenv("PATH")
defer func() { defer func() {
require.NoError(t, os.Setenv("PATH", path)) require.NoError(t, os.Setenv("PATH", path))
}() }()
require.NoError(t, os.Setenv("PATH", "")) require.NoError(t, os.Setenv("PATH", ""))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
{ {
Summary: "dummy", Summary: "dummy",
@ -210,10 +210,10 @@ func TestNoSnapcraftInPath(t *testing.T) {
} }
func TestRunNoArguments(t *testing.T) { func TestRunNoArguments(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "testprojectname", ProjectName: "testprojectname",
Dist: dist, Dist: dist,
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
@ -244,10 +244,10 @@ func TestRunNoArguments(t *testing.T) {
} }
func TestCompleter(t *testing.T) { func TestCompleter(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "testprojectname", ProjectName: "testprojectname",
Dist: dist, Dist: dist,
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
@ -281,10 +281,10 @@ func TestCompleter(t *testing.T) {
} }
func TestCommand(t *testing.T) { func TestCommand(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "testprojectname", ProjectName: "testprojectname",
Dist: dist, Dist: dist,
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
@ -316,10 +316,10 @@ func TestCommand(t *testing.T) {
} }
func TestExtraFile(t *testing.T) { func TestExtraFile(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "testprojectname", ProjectName: "testprojectname",
Dist: dist, Dist: dist,
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
@ -331,7 +331,7 @@ func TestExtraFile(t *testing.T) {
{ {
Source: "testdata/extra-file.txt", Source: "testdata/extra-file.txt",
Destination: "a/b/c/extra-file.txt", Destination: "a/b/c/extra-file.txt",
Mode: 0755, Mode: 0o755,
}, },
{ {
Source: "testdata/extra-file-2.txt", Source: "testdata/extra-file-2.txt",
@ -351,18 +351,18 @@ func TestExtraFile(t *testing.T) {
destFile, err := os.Stat(filepath.Join(dist, "foo_amd64", "prime", "a", "b", "c", "extra-file.txt")) destFile, err := os.Stat(filepath.Join(dist, "foo_amd64", "prime", "a", "b", "c", "extra-file.txt"))
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, inode(srcFile), inode(destFile)) require.Equal(t, inode(srcFile), inode(destFile))
require.Equal(t, destFile.Mode(), os.FileMode(0755)) require.Equal(t, destFile.Mode(), os.FileMode(0o755))
srcFile, err = os.Stat("testdata/extra-file-2.txt") srcFile, err = os.Stat("testdata/extra-file-2.txt")
require.NoError(t, err) require.NoError(t, err)
destFileWithDefaults, err := os.Stat(filepath.Join(dist, "foo_amd64", "prime", "testdata", "extra-file-2.txt")) destFileWithDefaults, err := os.Stat(filepath.Join(dist, "foo_amd64", "prime", "testdata", "extra-file-2.txt"))
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, destFileWithDefaults.Mode(), os.FileMode(0644)) require.Equal(t, destFileWithDefaults.Mode(), os.FileMode(0o644))
require.Equal(t, inode(srcFile), inode(destFileWithDefaults)) require.Equal(t, inode(srcFile), inode(destFileWithDefaults))
} }
func TestDefault(t *testing.T) { func TestDefault(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Builds: []config.Build{ Builds: []config.Build{
{ {
ID: "foo", ID: "foo",
@ -378,7 +378,7 @@ func TestDefault(t *testing.T) {
} }
func TestPublish(t *testing.T) { func TestPublish(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.Artifacts.Add(&artifact.Artifact{ ctx.Artifacts.Add(&artifact.Artifact{
Name: "mybin", Name: "mybin",
Path: "nope.snap", Path: "nope.snap",
@ -391,7 +391,7 @@ func TestPublish(t *testing.T) {
} }
func TestPublishSkip(t *testing.T) { func TestPublishSkip(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
ctx.SkipPublish = true ctx.SkipPublish = true
ctx.Artifacts.Add(&artifact.Artifact{ ctx.Artifacts.Add(&artifact.Artifact{
Name: "mybin", Name: "mybin",
@ -404,7 +404,7 @@ func TestPublishSkip(t *testing.T) {
} }
func TestDefaultSet(t *testing.T) { func TestDefaultSet(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
{ {
NameTemplate: "foo", NameTemplate: "foo",
@ -419,9 +419,9 @@ func addBinaries(t *testing.T, ctx *context.Context, name, dist string) {
t.Helper() t.Helper()
for _, goos := range []string{"linux", "darwin"} { for _, goos := range []string{"linux", "darwin"} {
for _, goarch := range []string{"amd64", "386", "arm6"} { for _, goarch := range []string{"amd64", "386", "arm6"} {
var folder = goos + goarch folder := goos + goarch
require.NoError(t, os.MkdirAll(filepath.Join(dist, folder), 0755)) require.NoError(t, os.MkdirAll(filepath.Join(dist, folder), 0o755))
var binPath = filepath.Join(dist, folder, name) binPath := filepath.Join(dist, folder, name)
f, err := os.Create(binPath) f, err := os.Create(binPath)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, f.Close()) require.NoError(t, f.Close())
@ -440,7 +440,7 @@ func addBinaries(t *testing.T, ctx *context.Context, name, dist string) {
} }
func TestSeveralSnapssWithTheSameID(t *testing.T) { func TestSeveralSnapssWithTheSameID(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Snapcrafts: []config.Snapcraft{ Snapcrafts: []config.Snapcraft{
{ {

View File

@ -12,8 +12,9 @@ import (
func TestStringer(t *testing.T) { func TestStringer(t *testing.T) {
require.NotEmpty(t, Pipe{}.String()) require.NotEmpty(t, Pipe{}.String())
} }
func TestDefault(t *testing.T) { func TestDefault(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Snapshot: config.Snapshot{}, Snapshot: config.Snapshot{},
}, },
@ -23,7 +24,7 @@ func TestDefault(t *testing.T) {
} }
func TestDefaultSet(t *testing.T) { func TestDefaultSet(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Snapshot: config.Snapshot{ Snapshot: config.Snapshot{
NameTemplate: "snap", NameTemplate: "snap",
@ -35,7 +36,7 @@ func TestDefaultSet(t *testing.T) {
} }
func TestSnapshotInvalidNametemplate(t *testing.T) { func TestSnapshotInvalidNametemplate(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Snapshot: config.Snapshot{ Snapshot: config.Snapshot{
NameTemplate: "{{.ShortCommit}{{{sss}}}", NameTemplate: "{{.ShortCommit}{{{sss}}}",
}, },
@ -45,7 +46,7 @@ func TestSnapshotInvalidNametemplate(t *testing.T) {
} }
func TestSnapshotEmptyFinalName(t *testing.T) { func TestSnapshotEmptyFinalName(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Snapshot: config.Snapshot{ Snapshot: config.Snapshot{
NameTemplate: "{{ .Commit }}", NameTemplate: "{{ .Commit }}",
}, },
@ -56,6 +57,6 @@ func TestSnapshotEmptyFinalName(t *testing.T) {
} }
func TestNotASnapshot(t *testing.T) { func TestNotASnapshot(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
testlib.AssertSkipped(t, Pipe{}.Run(ctx)) testlib.AssertSkipped(t, Pipe{}.Run(ctx))
} }

View File

@ -15,16 +15,16 @@ import (
func TestArchive(t *testing.T) { func TestArchive(t *testing.T) {
for _, format := range []string{"tar.gz", "tar", "zip"} { for _, format := range []string{"tar.gz", "tar", "zip"} {
t.Run(format, func(t *testing.T) { t.Run(format, func(t *testing.T) {
var tmp = testlib.Mktmp(t) tmp := testlib.Mktmp(t)
require.NoError(t, os.Mkdir("dist", 0744)) require.NoError(t, os.Mkdir("dist", 0o744))
testlib.GitInit(t) testlib.GitInit(t)
require.NoError(t, os.WriteFile("code.txt", []byte("not really code"), 0655)) require.NoError(t, os.WriteFile("code.txt", []byte("not really code"), 0o655))
require.NoError(t, os.WriteFile("README.md", []byte("# my dope fake project"), 0655)) require.NoError(t, os.WriteFile("README.md", []byte("# my dope fake project"), 0o655))
testlib.GitAdd(t) testlib.GitAdd(t)
testlib.GitCommit(t, "feat: first") testlib.GitCommit(t, "feat: first")
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "foo", ProjectName: "foo",
Dist: "dist", Dist: "dist",
Source: config.Source{ Source: config.Source{
@ -38,7 +38,7 @@ func TestArchive(t *testing.T) {
require.NoError(t, Pipe{}.Default(ctx)) require.NoError(t, Pipe{}.Default(ctx))
require.NoError(t, Pipe{}.Run(ctx)) require.NoError(t, Pipe{}.Run(ctx))
var artifacts = ctx.Artifacts.List() artifacts := ctx.Artifacts.List()
require.Len(t, artifacts, 1) require.Len(t, artifacts, 1)
require.Equal(t, artifact.Artifact{ require.Equal(t, artifact.Artifact{
Type: artifact.UploadableSourceArchive, Type: artifact.UploadableSourceArchive,
@ -56,7 +56,7 @@ func TestArchive(t *testing.T) {
} }
func TestDefault(t *testing.T) { func TestDefault(t *testing.T) {
var ctx = context.New(config.Project{}) ctx := context.New(config.Project{})
require.NoError(t, Pipe{}.Default(ctx)) require.NoError(t, Pipe{}.Default(ctx))
require.Equal(t, config.Source{ require.Equal(t, config.Source{
NameTemplate: "{{ .ProjectName }}-{{ .Version }}", NameTemplate: "{{ .ProjectName }}-{{ .Version }}",
@ -65,7 +65,7 @@ func TestDefault(t *testing.T) {
} }
func TestInvalidNameTemplate(t *testing.T) { func TestInvalidNameTemplate(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Source: config.Source{ Source: config.Source{
Enabled: true, Enabled: true,
NameTemplate: "{{ .foo }-asdda", NameTemplate: "{{ .foo }-asdda",

View File

@ -36,18 +36,14 @@ func teardown() {
server.Close() server.Close()
} }
func testMethod(t *testing.T, r *http.Request, want string) { func requireMethodPut(t *testing.T, r *http.Request) {
t.Helper() t.Helper()
if got := r.Method; got != want { require.Equal(t, http.MethodPut, r.Method)
t.Errorf("Request method: %v, want %v", got, want)
}
} }
func testHeader(t *testing.T, r *http.Request, header, want string) { func requireHeader(t *testing.T, r *http.Request, header, want string) {
t.Helper() t.Helper()
if got := r.Header.Get(header); got != want { require.Equal(t, want, r.Header.Get(header))
t.Errorf("Header.Get(%q) returned %q, want %q", header, got, want)
}
} }
// TODO: improve all tests bellow by checking wether the mocked handlers // TODO: improve all tests bellow by checking wether the mocked handlers
@ -57,53 +53,53 @@ func TestRunPipe_ModeBinary(t *testing.T) {
setup() setup()
defer teardown() defer teardown()
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0o755))
var binPath = filepath.Join(dist, "mybin", "mybin") binPath := filepath.Join(dist, "mybin", "mybin")
d1 := []byte("hello\ngo\n") d1 := []byte("hello\ngo\n")
require.NoError(t, os.WriteFile(binPath, d1, 0666)) require.NoError(t, os.WriteFile(binPath, d1, 0o666))
// Dummy http server // Dummy http server
mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin") w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
}) })
mux.HandleFunc("/example-repo-local/mybin/linux/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/mybin/linux/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin") w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
}) })
mux.HandleFunc("/production-repo-remote/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/production-repo-remote/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "productionuser" with secret "productionuser-apikey" // Basic auth of user "productionuser" with secret "productionuser-apikey"
testHeader(t, r, "Authorization", "Basic cHJvZHVjdGlvbnVzZXI6cHJvZHVjdGlvbnVzZXItYXBpa2V5") requireHeader(t, r, "Authorization", "Basic cHJvZHVjdGlvbnVzZXI6cHJvZHVjdGlvbnVzZXItYXBpa2V5")
w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin") w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
}) })
mux.HandleFunc("/production-repo-remote/mybin/linux/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/production-repo-remote/mybin/linux/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "productionuser" with secret "productionuser-apikey" // Basic auth of user "productionuser" with secret "productionuser-apikey"
testHeader(t, r, "Authorization", "Basic cHJvZHVjdGlvbnVzZXI6cHJvZHVjdGlvbnVzZXItYXBpa2V5") requireHeader(t, r, "Authorization", "Basic cHJvZHVjdGlvbnVzZXI6cHJvZHVjdGlvbnVzZXItYXBpa2V5")
w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin") w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
}) })
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "mybin", ProjectName: "mybin",
Dist: dist, Dist: dist,
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -147,7 +143,7 @@ func TestRunPipe_ModeArchive(t *testing.T) {
setup() setup()
defer teardown() defer teardown()
var folder = t.TempDir() folder := t.TempDir()
tarfile, err := os.Create(filepath.Join(folder, "bin.tar.gz")) tarfile, err := os.Create(filepath.Join(folder, "bin.tar.gz"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, tarfile.Close()) require.NoError(t, tarfile.Close())
@ -155,7 +151,7 @@ func TestRunPipe_ModeArchive(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, debfile.Close()) require.NoError(t, debfile.Close())
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "goreleaser", ProjectName: "goreleaser",
Dist: folder, Dist: folder,
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -190,18 +186,18 @@ func TestRunPipe_ModeArchive(t *testing.T) {
// Dummy http server // Dummy http server
mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.tar.gz", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.tar.gz", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.Header().Set("Location", "/example-repo-local/goreleaser/1.0.0/bin.tar.gz") w.Header().Set("Location", "/example-repo-local/goreleaser/1.0.0/bin.tar.gz")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
uploads.Store("targz", true) uploads.Store("targz", true)
}) })
mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.deb", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.deb", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.Header().Set("Location", "/example-repo-local/goreleaser/1.0.0/bin.deb") w.Header().Set("Location", "/example-repo-local/goreleaser/1.0.0/bin.deb")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
@ -219,35 +215,35 @@ func TestRunPipe_ModeBinary_CustomArtifactName(t *testing.T) {
setup() setup()
defer teardown() defer teardown()
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0o755))
var binPath = filepath.Join(dist, "mybin", "mybin") binPath := filepath.Join(dist, "mybin", "mybin")
d1 := []byte("hello\ngo\n") d1 := []byte("hello\ngo\n")
require.NoError(t, os.WriteFile(binPath, d1, 0666)) require.NoError(t, os.WriteFile(binPath, d1, 0o666))
// Dummy http server // Dummy http server
mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin;deb.distribution=xenial", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin;deb.distribution=xenial", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin;deb.distribution=xenial") w.Header().Set("Location", "/production-repo-remote/mybin/linux/amd64/mybin;deb.distribution=xenial")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
}) })
mux.HandleFunc("/example-repo-local/mybin/linux/amd64/mybin;deb.distribution=xenial", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/mybin/linux/amd64/mybin;deb.distribution=xenial", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.Header().Set("Location", "/example-repo-local/mybin/linux/amd64/mybin;deb.distribution=xenial") w.Header().Set("Location", "/example-repo-local/mybin/linux/amd64/mybin;deb.distribution=xenial")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
}) })
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "mybin", ProjectName: "mybin",
Dist: dist, Dist: dist,
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -284,7 +280,7 @@ func TestRunPipe_ModeArchive_CustomArtifactName(t *testing.T) {
setup() setup()
defer teardown() defer teardown()
var folder = t.TempDir() folder := t.TempDir()
tarfile, err := os.Create(filepath.Join(folder, "bin.tar.gz")) tarfile, err := os.Create(filepath.Join(folder, "bin.tar.gz"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, tarfile.Close()) require.NoError(t, tarfile.Close())
@ -292,7 +288,7 @@ func TestRunPipe_ModeArchive_CustomArtifactName(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, debfile.Close()) require.NoError(t, debfile.Close())
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "goreleaser", ProjectName: "goreleaser",
Dist: folder, Dist: folder,
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -328,18 +324,18 @@ func TestRunPipe_ModeArchive_CustomArtifactName(t *testing.T) {
// Dummy http server // Dummy http server
mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.tar.gz;deb.distribution=xenial", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.tar.gz;deb.distribution=xenial", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.Header().Set("Location", "/example-repo-local/goreleaser/1.0.0/bin.tar.gz;deb.distribution=xenial") w.Header().Set("Location", "/example-repo-local/goreleaser/1.0.0/bin.tar.gz;deb.distribution=xenial")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
uploads.Store("targz", true) uploads.Store("targz", true)
}) })
mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.deb;deb.distribution=xenial", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/goreleaser/1.0.0/bin.deb;deb.distribution=xenial", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.Header().Set("Location", "/example-repo-local/goreleaser/1.0.0/bin.deb;deb.distribution=xenial") w.Header().Set("Location", "/example-repo-local/goreleaser/1.0.0/bin.deb;deb.distribution=xenial")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
@ -354,12 +350,12 @@ func TestRunPipe_ModeArchive_CustomArtifactName(t *testing.T) {
} }
func TestRunPipe_ArtifactoryDown(t *testing.T) { func TestRunPipe_ArtifactoryDown(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
tarfile, err := os.Create(filepath.Join(folder, "bin.tar.gz")) tarfile, err := os.Create(filepath.Join(folder, "bin.tar.gz"))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, tarfile.Close()) require.NoError(t, tarfile.Close())
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "goreleaser", ProjectName: "goreleaser",
Dist: folder, Dist: folder,
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -387,11 +383,11 @@ func TestRunPipe_ArtifactoryDown(t *testing.T) {
} }
func TestRunPipe_TargetTemplateError(t *testing.T) { func TestRunPipe_TargetTemplateError(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
var binPath = filepath.Join(dist, "mybin", "mybin") binPath := filepath.Join(dist, "mybin", "mybin")
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "mybin", ProjectName: "mybin",
Dist: dist, Dist: dist,
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -418,7 +414,7 @@ func TestRunPipe_TargetTemplateError(t *testing.T) {
Goos: "darwin", Goos: "darwin",
Type: artifact.UploadableBinary, Type: artifact.UploadableBinary,
}) })
var err = Pipe{}.Publish(ctx) err := Pipe{}.Publish(ctx)
require.Error(t, err) require.Error(t, err)
require.Contains(t, err.Error(), `upload: error while building the target url: template: tmpl:1: unexpected "/" in operand`) require.Contains(t, err.Error(), `upload: error while building the target url: template: tmpl:1: unexpected "/" in operand`)
} }
@ -427,25 +423,25 @@ func TestRunPipe_BadCredentials(t *testing.T) {
setup() setup()
defer teardown() defer teardown()
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0o755))
var binPath = filepath.Join(dist, "mybin", "mybin") binPath := filepath.Join(dist, "mybin", "mybin")
d1 := []byte("hello\ngo\n") d1 := []byte("hello\ngo\n")
require.NoError(t, os.WriteFile(binPath, d1, 0666)) require.NoError(t, os.WriteFile(binPath, d1, 0o666))
// Dummy http server // Dummy http server
mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/example-repo-local/mybin/darwin/amd64/mybin", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPut) requireMethodPut(t, r)
testHeader(t, r, "Content-Length", "9") requireHeader(t, r, "Content-Length", "9")
// Basic auth of user "deployuser" with secret "deployuser-secret" // Basic auth of user "deployuser" with secret "deployuser-secret"
testHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==") requireHeader(t, r, "Authorization", "Basic ZGVwbG95dXNlcjpkZXBsb3l1c2VyLXNlY3JldA==")
w.WriteHeader(http.StatusUnauthorized) w.WriteHeader(http.StatusUnauthorized)
}) })
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "mybin", ProjectName: "mybin",
Dist: dist, Dist: dist,
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -472,13 +468,13 @@ func TestRunPipe_BadCredentials(t *testing.T) {
Type: artifact.UploadableBinary, Type: artifact.UploadableBinary,
}) })
var err = Pipe{}.Publish(ctx) err := Pipe{}.Publish(ctx)
require.Error(t, err) require.Error(t, err)
require.Contains(t, err.Error(), "Unauthorized") require.Contains(t, err.Error(), "Unauthorized")
} }
func TestRunPipe_FileNotFound(t *testing.T) { func TestRunPipe_FileNotFound(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "mybin", ProjectName: "mybin",
Dist: "archivetest/dist", Dist: "archivetest/dist",
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -509,15 +505,15 @@ func TestRunPipe_FileNotFound(t *testing.T) {
} }
func TestRunPipe_UnparsableTarget(t *testing.T) { func TestRunPipe_UnparsableTarget(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0o755))
var binPath = filepath.Join(dist, "mybin", "mybin") binPath := filepath.Join(dist, "mybin", "mybin")
d1 := []byte("hello\ngo\n") d1 := []byte("hello\ngo\n")
require.NoError(t, os.WriteFile(binPath, d1, 0666)) require.NoError(t, os.WriteFile(binPath, d1, 0o666))
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "mybin", ProjectName: "mybin",
Dist: dist, Dist: dist,
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -548,7 +544,7 @@ func TestRunPipe_UnparsableTarget(t *testing.T) {
} }
func TestRunPipe_SkipWhenPublishFalse(t *testing.T) { func TestRunPipe_SkipWhenPublishFalse(t *testing.T) {
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
Uploads: []config.Upload{ Uploads: []config.Upload{
{ {
Name: "production", Name: "production",
@ -572,13 +568,13 @@ func TestRunPipe_SkipWhenPublishFalse(t *testing.T) {
} }
func TestRunPipe_DirUpload(t *testing.T) { func TestRunPipe_DirUpload(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
var dist = filepath.Join(folder, "dist") dist := filepath.Join(folder, "dist")
require.NoError(t, os.Mkdir(dist, 0755)) require.NoError(t, os.Mkdir(dist, 0o755))
require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0755)) require.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0o755))
var binPath = filepath.Join(dist, "mybin") binPath := filepath.Join(dist, "mybin")
var ctx = context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "mybin", ProjectName: "mybin",
Dist: dist, Dist: dist,
Uploads: []config.Upload{ Uploads: []config.Upload{
@ -617,7 +613,7 @@ func TestNoPuts(t *testing.T) {
} }
func TestPutsWithoutTarget(t *testing.T) { func TestPutsWithoutTarget(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Env: map[string]string{ Env: map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",
}, },
@ -636,7 +632,7 @@ func TestPutsWithoutTarget(t *testing.T) {
} }
func TestPutsWithoutUsername(t *testing.T) { func TestPutsWithoutUsername(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Env: map[string]string{ Env: map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",
}, },
@ -680,7 +676,7 @@ func TestPutsWithoutSecret(t *testing.T) {
} }
func TestPutsWithInvalidMode(t *testing.T) { func TestPutsWithInvalidMode(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Env: map[string]string{ Env: map[string]string{
"UPLOAD_PRODUCTION_SECRET": "deployuser-secret", "UPLOAD_PRODUCTION_SECRET": "deployuser-secret",
}, },
@ -700,7 +696,7 @@ func TestPutsWithInvalidMode(t *testing.T) {
} }
func TestDefault(t *testing.T) { func TestDefault(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Uploads: []config.Upload{ Uploads: []config.Upload{
{ {
@ -713,13 +709,13 @@ func TestDefault(t *testing.T) {
} }
require.NoError(t, Pipe{}.Default(ctx)) require.NoError(t, Pipe{}.Default(ctx))
require.Len(t, ctx.Config.Uploads, 1) require.Len(t, ctx.Config.Uploads, 1)
var upload = ctx.Config.Uploads[0] upload := ctx.Config.Uploads[0]
require.Equal(t, "archive", upload.Mode) require.Equal(t, "archive", upload.Mode)
require.Equal(t, h.MethodPut, upload.Method) require.Equal(t, h.MethodPut, upload.Method)
} }
func TestDefaultNoPuts(t *testing.T) { func TestDefaultNoPuts(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Uploads: []config.Upload{}, Uploads: []config.Upload{},
}, },
@ -729,7 +725,7 @@ func TestDefaultNoPuts(t *testing.T) {
} }
func TestDefaultSet(t *testing.T) { func TestDefaultSet(t *testing.T) {
var ctx = &context.Context{ ctx := &context.Context{
Config: config.Project{ Config: config.Project{
Uploads: []config.Upload{ Uploads: []config.Upload{
{ {
@ -741,7 +737,7 @@ func TestDefaultSet(t *testing.T) {
} }
require.NoError(t, Pipe{}.Default(ctx)) require.NoError(t, Pipe{}.Default(ctx))
require.Len(t, ctx.Config.Uploads, 1) require.Len(t, ctx.Config.Uploads, 1)
var upload = ctx.Config.Uploads[0] upload := ctx.Config.Uploads[0]
require.Equal(t, "custom", upload.Mode) require.Equal(t, "custom", upload.Mode)
require.Equal(t, h.MethodPost, upload.Method) require.Equal(t, h.MethodPost, upload.Method)
} }

View File

@ -89,7 +89,7 @@ type skipAwareGroup struct {
// Go execs runs `fn` and saves the result if no error has been encountered. // Go execs runs `fn` and saves the result if no error has been encountered.
func (s *skipAwareGroup) Go(fn func() error) { func (s *skipAwareGroup) Go(fn func() error) {
s.g.Go(func() error { s.g.Go(func() error {
var err = fn() err := fn()
// if the err is a skip, set it for later, but return nil for now so the // if the err is a skip, set it for later, but return nil for now so the
// the group proceeds. // the group proceeds.
if pipe.IsSkip(err) { if pipe.IsSkip(err) {

View File

@ -11,7 +11,7 @@ import (
) )
func TestSemaphore(t *testing.T) { func TestSemaphore(t *testing.T) {
var g = New(4) g := New(4)
var lock sync.Mutex var lock sync.Mutex
var counter int var counter int
for i := 0; i < 10; i++ { for i := 0; i < 10; i++ {
@ -28,9 +28,9 @@ func TestSemaphore(t *testing.T) {
} }
func TestSemaphoreOrder(t *testing.T) { func TestSemaphoreOrder(t *testing.T) {
var num = 10 num := 10
var g = New(1) g := New(1)
var output = []int{} output := []int{}
for i := 0; i < num; i++ { for i := 0; i < num; i++ {
i := i i := i
g.Go(func() error { g.Go(func() error {
@ -43,8 +43,8 @@ func TestSemaphoreOrder(t *testing.T) {
} }
func TestSemaphoreOrderError(t *testing.T) { func TestSemaphoreOrderError(t *testing.T) {
var g = New(1) g := New(1)
var output = []int{} output := []int{}
for i := 0; i < 10; i++ { for i := 0; i < 10; i++ {
i := i i := i
g.Go(func() error { g.Go(func() error {
@ -57,7 +57,7 @@ func TestSemaphoreOrderError(t *testing.T) {
} }
func TestSemaphoreSkipAware(t *testing.T) { func TestSemaphoreSkipAware(t *testing.T) {
var g = NewSkipAware(New(1)) g := NewSkipAware(New(1))
var lock sync.Mutex var lock sync.Mutex
var counter int var counter int
for i := 0; i < 10; i++ { for i := 0; i < 10; i++ {
@ -74,7 +74,7 @@ func TestSemaphoreSkipAware(t *testing.T) {
} }
func TestSemaphoreSkipAndRealError(t *testing.T) { func TestSemaphoreSkipAndRealError(t *testing.T) {
var g = NewSkipAware(New(10)) g := NewSkipAware(New(10))
for i := 0; i < 100; i++ { for i := 0; i < 100; i++ {
g.Go(func() error { g.Go(func() error {
time.Sleep(10 * time.Millisecond) time.Sleep(10 * time.Millisecond)

View File

@ -13,6 +13,7 @@ import (
) )
func TestWithArtifact(t *testing.T) { func TestWithArtifact(t *testing.T) {
t.Parallel()
ctx := context.New(config.Project{ ctx := context.New(config.Project{
ProjectName: "proj", ProjectName: "proj",
}) })

View File

@ -8,18 +8,18 @@ import (
) )
func TestArchive(t *testing.T) { func TestArchive(t *testing.T) {
var folder = t.TempDir() folder := t.TempDir()
empty, err := os.Create(folder + "/empty.txt") empty, err := os.Create(folder + "/empty.txt")
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, empty.Close()) require.NoError(t, empty.Close())
require.NoError(t, os.Mkdir(folder+"/folder-inside", 0755)) require.NoError(t, os.Mkdir(folder+"/folder-inside", 0o755))
for _, format := range []string{"tar.gz", "zip", "gz", "tar.xz", "willbeatargzanyway"} { for _, format := range []string{"tar.gz", "zip", "gz", "tar.xz", "willbeatargzanyway"} {
format := format format := format
t.Run(format, func(t *testing.T) { t.Run(format, func(t *testing.T) {
file, err := os.Create(folder + "/folder." + format) file, err := os.Create(folder + "/folder." + format)
require.NoError(t, err) require.NoError(t, err)
var archive = New(file) archive := New(file)
t.Cleanup(func() { t.Cleanup(func() {
require.NoError(t, archive.Close()) require.NoError(t, archive.Close())
require.NoError(t, file.Close()) require.NoError(t, file.Close())

View File

@ -11,7 +11,7 @@ import (
) )
func TestGzFile(t *testing.T) { func TestGzFile(t *testing.T) {
var tmp = t.TempDir() tmp := t.TempDir()
f, err := os.Create(filepath.Join(tmp, "test.gz")) f, err := os.Create(filepath.Join(tmp, "test.gz"))
require.NoError(t, err) require.NoError(t, err)
defer f.Close() // nolint: errcheck defer f.Close() // nolint: errcheck

View File

@ -12,7 +12,7 @@ import (
) )
func TestTarGzFile(t *testing.T) { func TestTarGzFile(t *testing.T) {
var tmp = t.TempDir() tmp := t.TempDir()
f, err := os.Create(filepath.Join(tmp, "test.tar.gz")) f, err := os.Create(filepath.Join(tmp, "test.tar.gz"))
require.NoError(t, err) require.NoError(t, err)
defer f.Close() // nolint: errcheck defer f.Close() // nolint: errcheck
@ -55,7 +55,7 @@ func TestTarGzFile(t *testing.T) {
paths = append(paths, next.Name) paths = append(paths, next.Name)
t.Logf("%s: %v", next.Name, next.FileInfo().Mode()) t.Logf("%s: %v", next.Name, next.FileInfo().Mode())
if next.Name == "sub1/executable" { if next.Name == "sub1/executable" {
var ex = next.FileInfo().Mode() | 0111 ex := next.FileInfo().Mode() | 0o111
require.Equal(t, next.FileInfo().Mode().String(), ex.String()) require.Equal(t, next.FileInfo().Mode().String(), ex.String())
} }
} }

View File

@ -12,7 +12,7 @@ import (
) )
func TestTarXzFile(t *testing.T) { func TestTarXzFile(t *testing.T) {
var tmp = t.TempDir() tmp := t.TempDir()
f, err := os.Create(filepath.Join(tmp, "test.tar.xz")) f, err := os.Create(filepath.Join(tmp, "test.tar.xz"))
require.NoError(t, err) require.NoError(t, err)
defer f.Close() // nolint: errcheck defer f.Close() // nolint: errcheck
@ -53,7 +53,7 @@ func TestTarXzFile(t *testing.T) {
paths = append(paths, next.Name) paths = append(paths, next.Name)
t.Logf("%s: %v", next.Name, next.FileInfo().Mode()) t.Logf("%s: %v", next.Name, next.FileInfo().Mode())
if next.Name == "sub1/executable" { if next.Name == "sub1/executable" {
var ex = next.FileInfo().Mode() | 0111 ex := next.FileInfo().Mode() | 0o111
require.Equal(t, next.FileInfo().Mode().String(), ex.String()) require.Equal(t, next.FileInfo().Mode().String(), ex.String())
} }
} }

View File

@ -10,7 +10,7 @@ import (
) )
func TestZipFile(t *testing.T) { func TestZipFile(t *testing.T) {
var tmp = t.TempDir() tmp := t.TempDir()
f, err := os.Create(filepath.Join(tmp, "test.zip")) f, err := os.Create(filepath.Join(tmp, "test.zip"))
require.NoError(t, err) require.NoError(t, err)
defer f.Close() // nolint: errcheck defer f.Close() // nolint: errcheck
@ -40,12 +40,12 @@ func TestZipFile(t *testing.T) {
r, err := zip.NewReader(f, info.Size()) r, err := zip.NewReader(f, info.Size())
require.NoError(t, err) require.NoError(t, err)
var paths = make([]string, len(r.File)) paths := make([]string, len(r.File))
for i, zf := range r.File { for i, zf := range r.File {
paths[i] = zf.Name paths[i] = zf.Name
t.Logf("%s: %v", zf.Name, zf.Mode()) t.Logf("%s: %v", zf.Name, zf.Mode())
if zf.Name == "sub1/executable" { if zf.Name == "sub1/executable" {
var ex = zf.Mode() | 0111 ex := zf.Mode() | 0o111
require.Equal(t, zf.Mode().String(), ex.String()) require.Equal(t, zf.Mode().String(), ex.String())
} }
} }

View File

@ -13,12 +13,13 @@ type dummy struct{}
func (*dummy) WithDefaults(build config.Build) (config.Build, error) { func (*dummy) WithDefaults(build config.Build) (config.Build, error) {
return build, nil return build, nil
} }
func (*dummy) Build(ctx *context.Context, build config.Build, options Options) error { func (*dummy) Build(ctx *context.Context, build config.Build, options Options) error {
return nil return nil
} }
func TestRegisterAndGet(t *testing.T) { func TestRegisterAndGet(t *testing.T) {
var builder = &dummy{} builder := &dummy{}
Register("dummy", builder) Register("dummy", builder)
require.Equal(t, builder, For("dummy")) require.Equal(t, builder, For("dummy"))
} }

View File

@ -9,7 +9,7 @@ import (
func TestUnmarshalHomebrewDependency(t *testing.T) { func TestUnmarshalHomebrewDependency(t *testing.T) {
t.Run("string arr", func(t *testing.T) { t.Run("string arr", func(t *testing.T) {
var conf = ` conf := `
brews: brews:
- name: foo - name: foo
dependencies: dependencies:
@ -30,7 +30,7 @@ brews:
}) })
t.Run("mixed", func(t *testing.T) { t.Run("mixed", func(t *testing.T) {
var conf = ` conf := `
brews: brews:
- name: foo - name: foo
dependencies: dependencies:
@ -56,7 +56,7 @@ brews:
}) })
t.Run("mixed", func(t *testing.T) { t.Run("mixed", func(t *testing.T) {
var conf = ` conf := `
brews: brews:
- name: foo - name: foo
dependencies: dependencies:

View File

@ -23,7 +23,7 @@ func TestEmptyRepoNameAndOwner(t *testing.T) {
} }
func TestLoadReader(t *testing.T) { func TestLoadReader(t *testing.T) {
var conf = ` conf := `
nfpms: nfpms:
- homepage: http://goreleaser.github.io - homepage: http://goreleaser.github.io
` `
@ -39,6 +39,7 @@ type errorReader struct{}
func (errorReader) Read(p []byte) (n int, err error) { func (errorReader) Read(p []byte) (n int, err error) {
return 1, fmt.Errorf("error") return 1, fmt.Errorf("error")
} }
func TestLoadBadReader(t *testing.T) { func TestLoadBadReader(t *testing.T) {
_, err := LoadReader(errorReader{}) _, err := LoadReader(errorReader{})
require.Error(t, err) require.Error(t, err)

View File

@ -12,7 +12,7 @@ import (
func TestNew(t *testing.T) { func TestNew(t *testing.T) {
require.NoError(t, os.Setenv("FOO", "NOT BAR")) require.NoError(t, os.Setenv("FOO", "NOT BAR"))
require.NoError(t, os.Setenv("BAR", "1")) require.NoError(t, os.Setenv("BAR", "1"))
var ctx = New(config.Project{ ctx := New(config.Project{
Env: []string{ Env: []string{
"FOO=BAR", "FOO=BAR",
}, },