Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ci): compile with go 1.19 #3278

Merged
merged 11 commits into from Aug 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Expand Up @@ -64,7 +64,7 @@ jobs:
mkdir -p $HOME/.cache/snapcraft/stage-packages
- uses: actions/setup-go@84cbf8094393cdc5fe1fe1671ff2647332956b1a # v3
with:
go-version: '1.18'
go-version: '1.19'
- uses: actions/cache@661fd3eb7f2f20d8c7c84bc2b0509efd7a826628 # v2
with:
path: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Expand Up @@ -23,7 +23,7 @@ jobs:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-go@84cbf8094393cdc5fe1fe1671ff2647332956b1a # v3
with:
go-version: 1.18
go-version: 1.19
- run: task docs:build
- uses: wjdp/htmltest-action@09118714cd26bef56bd3d0819e4f9b1dce6f60a9 # master
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/generate.yml
Expand Up @@ -24,7 +24,7 @@ jobs:
token: ${{ secrets.GH_PAT }}
- uses: actions/setup-go@84cbf8094393cdc5fe1fe1671ff2647332956b1a # v3
with:
go-version: 1.18
go-version: 1.19
- uses: arduino/setup-task@ca745e18916de727f841ec824ac20a615f1cddea # v1
- run: task docs:generate
- run: task schema:generate
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Expand Up @@ -19,7 +19,7 @@ jobs:
steps:
- uses: actions/setup-go@84cbf8094393cdc5fe1fe1671ff2647332956b1a # v3
with:
go-version: ~1.18
go-version: ~1.19
- uses: actions/checkout@b0e28b5ac45a892f91e7d036f8200cf5ed489415 # v3
- name: golangci-lint
uses: golangci/golangci-lint-action@537aa1903e5d359d0b27dbc19ddd22c5087f3fbc # v3
Expand Down
2 changes: 1 addition & 1 deletion .golangci.yaml
@@ -1,5 +1,5 @@
run:
go: 1.18
go: 1.19
linters:
enable:
- thelper
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Expand Up @@ -9,7 +9,7 @@ By participating to this project, you agree to abide our [code of conduct](https
Prerequisites:

- [Task](https://taskfile.dev/#/installation)
- [Go 1.18+](https://golang.org/doc/install)
- [Go 1.19+](https://golang.org/doc/install)

Other things you might need to run the tests:

Expand Down
2 changes: 1 addition & 1 deletion cmd/util_test.go
Expand Up @@ -62,7 +62,7 @@ func goModInit(tb testing.TB) {
tb.Helper()
createFile(tb, "go.mod", `module foo

go 1.18
go 1.19
`)
}

Expand Down
2 changes: 1 addition & 1 deletion go.mod
@@ -1,6 +1,6 @@
module github.com/goreleaser/goreleaser

go 1.18
go 1.19

require (
code.gitea.io/sdk/gitea v0.15.1
Expand Down
2 changes: 1 addition & 1 deletion internal/artifact/artifact_test.go
Expand Up @@ -405,7 +405,7 @@ func TestExtra(t *testing.T) {

t.Run("unmarshal error", func(t *testing.T) {
_, err := Extra[config.Docker](a, "fail-plz")
require.EqualError(t, err, "json: unknown field \"Name\"")
require.EqualError(t, err, "json: unknown field \"tap\"")
})

t.Run("marshal error", func(t *testing.T) {
Expand Down
27 changes: 13 additions & 14 deletions internal/builders/golang/build_test.go
Expand Up @@ -258,8 +258,9 @@ func TestDefaults(t *testing.T) {

// createFakeGoBinaryWithVersion creates a temporary executable with the
// given name, which will output a go version string with the given version.
// The temporary directory created by this function will be placed in the PATH
// variable for the duration of (and cleaned up at the end of) the
//
// The temporary directory created by this function will be placed in the
// PATH variable for the duration of (and cleaned up at the end of) the
// current test run.
func createFakeGoBinaryWithVersion(tb testing.TB, name, version string) {
tb.Helper()
Expand Down Expand Up @@ -626,7 +627,7 @@ func TestRunInvalidAsmflags(t *testing.T) {
err := Default.Build(ctx, ctx.Config.Builds[0], api.Options{
Target: runtimeTarget,
})
require.EqualError(t, err, `template: tmpl:1: unexpected "}" in operand`)
testlib.RequireTemplateError(t, err)
}

func TestRunInvalidGcflags(t *testing.T) {
Expand All @@ -650,7 +651,7 @@ func TestRunInvalidGcflags(t *testing.T) {
err := Default.Build(ctx, ctx.Config.Builds[0], api.Options{
Target: runtimeTarget,
})
require.EqualError(t, err, `template: tmpl:1: unexpected "}" in operand`)
testlib.RequireTemplateError(t, err)
}

func TestRunInvalidLdflags(t *testing.T) {
Expand All @@ -675,7 +676,7 @@ func TestRunInvalidLdflags(t *testing.T) {
err := Default.Build(ctx, ctx.Config.Builds[0], api.Options{
Target: runtimeTarget,
})
require.EqualError(t, err, `template: tmpl:1: unexpected "}" in operand`)
testlib.RequireTemplateError(t, err)
}

func TestRunInvalidFlags(t *testing.T) {
Expand All @@ -698,7 +699,7 @@ func TestRunInvalidFlags(t *testing.T) {
err := Default.Build(ctx, ctx.Config.Builds[0], api.Options{
Target: runtimeTarget,
})
require.EqualError(t, err, `template: tmpl:1: unexpected "}" in operand`)
testlib.RequireTemplateError(t, err)
}

func TestRunPipeWithoutMainFunc(t *testing.T) {
Expand Down Expand Up @@ -903,15 +904,15 @@ func TestLdFlagsFullTemplate(t *testing.T) {
}

func TestInvalidTemplate(t *testing.T) {
for template, eerr := range map[string]string{
"{{ .Nope }": `template: tmpl:1: unexpected "}" in operand`,
"{{.Env.NOPE}}": `template: tmpl:1:6: executing "tmpl" at <.Env.NOPE>: map has no entry for key "NOPE"`,
for _, template := range []string{
"{{ .Nope }",
"{{.Env.NOPE}}",
} {
t.Run(template, func(t *testing.T) {
ctx := context.New(config.Project{})
ctx.Git.CurrentTag = "3.4.1"
flags, err := tmpl.New(ctx).Apply(template)
require.EqualError(t, err, eerr)
testlib.RequireTemplateError(t, err)
require.Empty(t, flags)
})
}
Expand Down Expand Up @@ -966,10 +967,8 @@ func TestProcessFlagsInvalid(t *testing.T) {
"{{.Version}",
}

expected := `template: tmpl:1: unexpected "}" in operand`

flags, err := processFlags(ctx, &artifact.Artifact{}, []string{}, source, "-testflag=")
require.EqualError(t, err, expected)
testlib.RequireTemplateError(t, err)
require.Nil(t, flags)
}

Expand Down Expand Up @@ -1291,7 +1290,7 @@ func TestOverrides(t *testing.T) {
Goarch: runtime.GOARCH,
},
)
require.EqualError(t, err, `template: tmpl:1: unexpected "}" in operand`)
testlib.RequireTemplateError(t, err)
})

t.Run("with goarm", func(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions internal/pipe/archive/archive_test.go
Expand Up @@ -536,7 +536,7 @@ func TestRunPipeInvalidNameTemplate(t *testing.T) {
artifact.ExtraID: "default",
},
})
require.EqualError(t, Pipe{}.Run(ctx), `template: tmpl:1: unexpected "}" in operand`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
}

func TestRunPipeInvalidFilesNameTemplate(t *testing.T) {
Expand Down Expand Up @@ -574,7 +574,7 @@ func TestRunPipeInvalidFilesNameTemplate(t *testing.T) {
artifact.ExtraID: "default",
},
})
require.EqualError(t, Pipe{}.Run(ctx), `failed to find files to archive: failed to apply template {{.asdsd}: template: tmpl:1: unexpected "}" in operand`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
}

func TestRunPipeInvalidWrapInDirectoryTemplate(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions internal/pipe/artifactory/artifactory_test.go
Expand Up @@ -358,7 +358,7 @@ func TestRunPipe_TargetTemplateError(t *testing.T) {
Name: "production",
Mode: "binary",
// This template is not correct and should fail
Target: "http://storage.company.com/example-repo-local/{{ .ProjectName /{{ .Version }}/",
Target: "http://storage.company.com/example-repo-local/{{.Name}",
Username: "deployuser",
},
},
Expand All @@ -378,7 +378,7 @@ func TestRunPipe_TargetTemplateError(t *testing.T) {
})

require.NoError(t, Pipe{}.Default(ctx))
require.EqualError(t, Pipe{}.Publish(ctx), `artifactory: error while building the target url: template: tmpl:1: unexpected "/" in operand`)
testlib.RequireTemplateError(t, Pipe{}.Publish(ctx))
}

func TestRunPipe_BadCredentials(t *testing.T) {
Expand Down
24 changes: 14 additions & 10 deletions internal/pipe/docker/docker_test.go
Expand Up @@ -81,13 +81,17 @@ func TestRunPipe(t *testing.T) {
t.Helper()
require.NoError(t, err)
}
shouldTemplateErr := func(t *testing.T, err error) {
t.Helper()
testlib.RequireTemplateError(t, err)
}
type imageLabelFinder func(*testing.T, string)
shouldFindImagesWithLabels := func(image string, filters ...string) func(*testing.T, string) {
return func(t *testing.T, use string) {
t.Helper()
for _, filter := range filters {
cmd := exec.Command("docker", "images", "-q", "--filter", "reference=*/"+image, "--filter", filter)
t.Log("running", cmd)
// t.Log("running", cmd)
output, err := cmd.CombinedOutput()
require.NoError(t, err, string(output))
uniqueIDs := map[string]string{}
Expand Down Expand Up @@ -272,7 +276,7 @@ func TestRunPipe(t *testing.T) {
fmt.Sprintf("docker push %sgoreleaser/dummy:v1", registry),
fmt.Sprintf("docker manifest create %sgoreleaser/test_multiarch:2test --amend %sgoreleaser/dummy:v1 --insecure", registry, registry),
} {
t.Log("running", cmd)
// t.Log("running", cmd)
parts := strings.Fields(cmd)
out, err := exec.CommandContext(ctx, parts[0], parts[1:]...).CombinedOutput()
require.NoError(t, err, cmd+": "+string(out))
Expand Down Expand Up @@ -319,7 +323,7 @@ func TestRunPipe(t *testing.T) {
expect: []string{registry + "goreleaser/test_multiarch_manifest_tmpl_error"},
assertError: shouldNotErr,
pubAssertError: shouldNotErr,
manifestAssertError: shouldErr(`template: tmpl:1: unexpected "}" in operand`),
manifestAssertError: shouldTemplateErr,
assertImageLabels: noLabels,
},
"multiarch image template error": {
Expand All @@ -340,7 +344,7 @@ func TestRunPipe(t *testing.T) {
expect: []string{registry + "goreleaser/test_multiarch_img_tmpl_error"},
assertError: shouldNotErr,
pubAssertError: shouldNotErr,
manifestAssertError: shouldErr(`template: tmpl:1: unexpected "}" in operand`),
manifestAssertError: shouldTemplateErr,
assertImageLabels: noLabels,
},
"multiarch missing manifest name": {
Expand Down Expand Up @@ -478,7 +482,7 @@ func TestRunPipe(t *testing.T) {
},
},
expect: []string{},
assertError: shouldErr(`template: tmpl:1:7: executing "tmpl" at <.Env.Dockerfile>: map has no entry for key "Dockerfile"`),
assertError: shouldTemplateErr,
assertImageLabels: noLabels,
pubAssertError: shouldNotErr,
manifestAssertError: shouldNotErr,
Expand Down Expand Up @@ -771,7 +775,7 @@ func TestRunPipe(t *testing.T) {
},
},
assertImageLabels: noLabels,
assertError: shouldErr(`template: tmpl:1: unexpected "}" in operand`),
assertError: shouldTemplateErr,
},
"build_flag_template_error": {
dockers: []config.Docker{
Expand All @@ -788,7 +792,7 @@ func TestRunPipe(t *testing.T) {
},
},
assertImageLabels: noLabels,
assertError: shouldErr(`template: tmpl:1: unexpected "}" in operand`),
assertError: shouldTemplateErr,
},
"missing_env_on_tag_template": {
dockers: []config.Docker{
Expand All @@ -802,7 +806,7 @@ func TestRunPipe(t *testing.T) {
},
},
assertImageLabels: noLabels,
assertError: shouldErr(`template: tmpl:1:46: executing "tmpl" at <.Env.NOPE>: map has no entry for key "NOPE"`),
assertError: shouldTemplateErr,
},
"missing_env_on_build_flag_template": {
dockers: []config.Docker{
Expand All @@ -819,7 +823,7 @@ func TestRunPipe(t *testing.T) {
},
},
assertImageLabels: noLabels,
assertError: shouldErr(`template: tmpl:1:19: executing "tmpl" at <.Env.NOPE>: map has no entry for key "NOPE"`),
assertError: shouldTemplateErr,
},
"image_has_projectname_template_variable": {
dockers: []config.Docker{
Expand Down Expand Up @@ -1087,7 +1091,7 @@ func TestRunPipe(t *testing.T) {
// this might should not fail as the image should have been created when
// the step ran
for _, img := range docker.expect {
t.Log("removing docker image", img)
// t.Log("removing docker image", img)
require.NoError(t, rmi(img), "could not delete image %s", img)
}
})
Expand Down
2 changes: 1 addition & 1 deletion internal/pipe/gomod/gomod_proxy_test.go
Expand Up @@ -227,7 +227,7 @@ func requireGoMod(tb testing.TB, module, version string) {
require.NoError(tb, err)
require.Contains(tb, string(mod), fmt.Sprintf(`module foo

go 1.18
go 1.19

require %s %s
`, module, version))
Expand Down
22 changes: 11 additions & 11 deletions internal/pipe/nfpm/nfpm_test.go
Expand Up @@ -429,7 +429,7 @@ func TestInvalidTemplate(t *testing.T) {
FileNameTemplate: "{{.Foo}",
}
require.NoError(t, Pipe{}.Default(ctx))
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1: unexpected "}" in operand`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})

t.Run("source", func(t *testing.T) {
Expand All @@ -442,7 +442,7 @@ func TestInvalidTemplate(t *testing.T) {
},
},
}
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1:3: executing "tmpl" at <.NOPE_SOURCE>: map has no entry for key "NOPE_SOURCE"`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})

t.Run("target", func(t *testing.T) {
Expand All @@ -455,49 +455,49 @@ func TestInvalidTemplate(t *testing.T) {
},
},
}
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1:3: executing "tmpl" at <.NOPE_TARGET>: map has no entry for key "NOPE_TARGET"`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})

t.Run("description", func(t *testing.T) {
ctx := makeCtx()
ctx.Config.NFPMs[0].Description = "{{ .NOPE_DESC }}"
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1:3: executing "tmpl" at <.NOPE_DESC>: map has no entry for key "NOPE_DESC"`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})

t.Run("maintainer", func(t *testing.T) {
ctx := makeCtx()
ctx.Config.NFPMs[0].Maintainer = "{{ .NOPE_DESC }}"
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1:3: executing "tmpl" at <.NOPE_DESC>: map has no entry for key "NOPE_DESC"`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})

t.Run("homepage", func(t *testing.T) {
ctx := makeCtx()
ctx.Config.NFPMs[0].Homepage = "{{ .NOPE_HOMEPAGE }}"
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1:3: executing "tmpl" at <.NOPE_HOMEPAGE>: map has no entry for key "NOPE_HOMEPAGE"`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})

t.Run("deb key file", func(t *testing.T) {
ctx := makeCtx()
ctx.Config.NFPMs[0].Deb.Signature.KeyFile = "{{ .NOPE_KEY_FILE }}"
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1:3: executing "tmpl" at <.NOPE_KEY_FILE>: map has no entry for key "NOPE_KEY_FILE"`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})

t.Run("rpm key file", func(t *testing.T) {
ctx := makeCtx()
ctx.Config.NFPMs[0].RPM.Signature.KeyFile = "{{ .NOPE_KEY_FILE }}"
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1:3: executing "tmpl" at <.NOPE_KEY_FILE>: map has no entry for key "NOPE_KEY_FILE"`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})

t.Run("apk key file", func(t *testing.T) {
ctx := makeCtx()
ctx.Config.NFPMs[0].APK.Signature.KeyFile = "{{ .NOPE_KEY_FILE }}"
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1:3: executing "tmpl" at <.NOPE_KEY_FILE>: map has no entry for key "NOPE_KEY_FILE"`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})

t.Run("bindir", func(t *testing.T) {
ctx := makeCtx()
ctx.Config.NFPMs[0].Bindir = "/usr/{{ .NOPE }}"
require.Contains(t, Pipe{}.Run(ctx).Error(), `template: tmpl:1:8: executing "tmpl" at <.NOPE>: map has no entry for key "NOPE"`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
})
}

Expand Down Expand Up @@ -532,7 +532,7 @@ func TestRunPipeInvalidContentsSourceTemplate(t *testing.T) {
artifact.ExtraID: "default",
},
})
require.EqualError(t, Pipe{}.Run(ctx), `template: tmpl:1: unexpected "}" in operand`)
testlib.RequireTemplateError(t, Pipe{}.Run(ctx))
}

func TestNoBuildsFound(t *testing.T) {
Expand Down