diff --git a/.golangci.yml b/.golangci.yml index 6151fb5e..a43f7f3c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -5,23 +5,35 @@ run: linters: enable: + - bodyclose - depguard - forbidigo + - gocritic - gofmt - goimports - gosec - gosimple - govet - ineffassign + - makezero - misspell + - noctx - nolintlint - revive - staticcheck - typecheck - unused + - whitespace disable-all: true linters-settings: + gocritic: + disabled-checks: + - "ifElseChain" + - "assignOp" + - "appendAssign" + - "singleCaseSwitch" + - "exitAfterDefer" # FIXME govet: enable: - nilness diff --git a/bake/compose.go b/bake/compose.go index d1217338..d72dbe78 100644 --- a/bake/compose.go +++ b/bake/compose.go @@ -179,7 +179,6 @@ func ParseCompose(cfgs []composetypes.ConfigFile, envs map[string]string) (*Conf c.Targets = append(c.Targets, t) } c.Groups = append(c.Groups, g) - } return &c, nil diff --git a/bake/hclparser/stdlib.go b/bake/hclparser/stdlib.go index b0e094f6..df04bb8a 100644 --- a/bake/hclparser/stdlib.go +++ b/bake/hclparser/stdlib.go @@ -170,7 +170,6 @@ func indexOfFunc() function.Function { } } return cty.NilVal, errors.New("item not found") - }, }) } diff --git a/builder/builder.go b/builder/builder.go index dfa5051f..fb54886d 100644 --- a/builder/builder.go +++ b/builder/builder.go @@ -288,7 +288,15 @@ func GetBuilders(dockerCli command.Cli, txn *store.Txn) ([]*Builder, error) { return nil, err } - builders := make([]*Builder, len(storeng)) + contexts, err := dockerCli.ContextStore().List() + if err != nil { + return nil, err + } + sort.Slice(contexts, func(i, j int) bool { + return contexts[i].Name < contexts[j].Name + }) + + builders := make([]*Builder, len(storeng), len(storeng)+len(contexts)) seen := make(map[string]struct{}) for i, ng := range storeng { b, err := New(dockerCli, @@ -303,14 +311,6 @@ func GetBuilders(dockerCli command.Cli, txn *store.Txn) ([]*Builder, error) { seen[b.NodeGroup.Name] = struct{}{} } - contexts, err := dockerCli.ContextStore().List() - if err != nil { - return nil, err - } - sort.Slice(contexts, func(i, j int) bool { - return contexts[i].Name < contexts[j].Name - }) - for _, c := range contexts { // if a context has the same name as an instance from the store, do not // add it to the builders list. An instance from the store takes diff --git a/commands/build.go b/commands/build.go index 1904a02d..e6fdb2f5 100644 --- a/commands/build.go +++ b/commands/build.go @@ -885,7 +885,6 @@ func printWarnings(w io.Writer, warnings []client.VertexWarning, mode progressui src.Print(w) } fmt.Fprintf(w, "\n") - } } diff --git a/commands/imagetools/create.go b/commands/imagetools/create.go index 05f460d7..81471810 100644 --- a/commands/imagetools/create.go +++ b/commands/imagetools/create.go @@ -42,7 +42,7 @@ func runCreate(ctx context.Context, dockerCli command.Cli, in createOptions, arg return errors.Errorf("can't push with no tags specified, please set --tag or --dry-run") } - fileArgs := make([]string, len(in.files)) + fileArgs := make([]string, len(in.files), len(in.files)+len(args)) for i, f := range in.files { dt, err := os.ReadFile(f) if err != nil { diff --git a/commands/use.go b/commands/use.go index 30877a8a..58442281 100644 --- a/commands/use.go +++ b/commands/use.go @@ -46,7 +46,6 @@ func runUse(dockerCli command.Cli, in useOptions) error { return errors.Errorf("run `docker context use %s` to switch to context %s", in.builder, in.builder) } } - } return errors.Wrapf(err, "failed to find instance %q", in.builder) } diff --git a/controller/pb/path.go b/controller/pb/path.go index b04b355d..b793a2de 100644 --- a/controller/pb/path.go +++ b/controller/pb/path.go @@ -153,7 +153,6 @@ func ResolveOptionPaths(options *BuildOptions) (_ *BuildOptions, err error) { } } ps = append(ps, p) - } s.Paths = ps ssh = append(ssh, s) diff --git a/controller/remote/io.go b/controller/remote/io.go index df28b445..9a29534f 100644 --- a/controller/remote/io.go +++ b/controller/remote/io.go @@ -302,7 +302,6 @@ func attachIO(ctx context.Context, stream msgStream, initMessage *pb.InitMessage out = cfg.stderr default: return errors.Errorf("unsupported fd %d", file.Fd) - } if out == nil { logrus.Warnf("attachIO: no writer for fd %d", file.Fd) diff --git a/driver/docker-container/driver.go b/driver/docker-container/driver.go index 2eede55b..b0ac0720 100644 --- a/driver/docker-container/driver.go +++ b/driver/docker-container/driver.go @@ -177,7 +177,6 @@ func (d *Driver) create(ctx context.Context, l progress.SubLogger) error { break } } - } _, err := d.DockerAPI.ContainerCreate(ctx, cfg, hc, &network.NetworkingConfig{}, nil, d.Name) if err != nil && !errdefs.IsConflict(err) { diff --git a/driver/docker/version.go b/driver/docker/version.go index 2de359de..e71608d1 100644 --- a/driver/docker/version.go +++ b/driver/docker/version.go @@ -176,11 +176,6 @@ func resolveBuildKitVersion(ver string) (string, error) { if err != nil { return "", err } - //if _, errs := c.Validate(mobyVersion); len(errs) > 0 { - // for _, err := range errs { - // fmt.Printf("%s: %v\n", m.MobyVersionConstraint, err) - // } - //} if !c.Check(mobyVersion) { continue } diff --git a/tests/bake.go b/tests/bake.go index 3f991d03..c089e732 100644 --- a/tests/bake.go +++ b/tests/bake.go @@ -978,7 +978,6 @@ func testBakeMultiPlatform(t *testing.T, sb integration.Sandbox) { require.NotNil(t, img) img = imgs.Find("linux/arm64") require.NotNil(t, img) - } else { require.Error(t, err, string(out)) require.Contains(t, string(out), "Multi-platform build is not supported") @@ -1468,7 +1467,7 @@ target "third" { fstest.CreateFile("docker-bake.hcl", bakefile, 0600), ) - dockerfilePathFirst := filepath.Join("Dockerfile") + dockerfilePathFirst := "Dockerfile" dockerfilePathSecond := filepath.Join("subdir", "Dockerfile") dockerfilePathThird := filepath.Join("subdir", "subsubdir", "Dockerfile") diff --git a/tests/build.go b/tests/build.go index 046689dd..bbdc768f 100644 --- a/tests/build.go +++ b/tests/build.go @@ -649,7 +649,6 @@ func testBuildMultiPlatform(t *testing.T, sb integration.Sandbox) { require.NotNil(t, img) img = imgs.Find("linux/arm64") require.NotNil(t, img) - } else { require.Error(t, err, string(out)) require.Contains(t, string(out), "Multi-platform build is not supported") diff --git a/util/buildflags/export.go b/util/buildflags/export.go index 37f3c274..60c561f4 100644 --- a/util/buildflags/export.go +++ b/util/buildflags/export.go @@ -138,7 +138,6 @@ func ParseAnnotations(inp []string) (map[exptypes.AnnotationKey]string, error) { } annotations[ak] = v } - } return annotations, nil } diff --git a/util/imagetools/imagetools_helpers_test.go b/util/imagetools/imagetools_helpers_test.go index 77a3d74b..44490683 100644 --- a/util/imagetools/imagetools_helpers_test.go +++ b/util/imagetools/imagetools_helpers_test.go @@ -47,7 +47,6 @@ func (f mockFetcher) Fetch(ctx context.Context, desc ocispec.Descriptor) (io.Rea reader := io.NopCloser(strings.NewReader(desc.Annotations["test_content"])) return reader, nil } - } func (r mockResolver) Resolve(ctx context.Context, ref string) (name string, desc ocispec.Descriptor, err error) {