Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 3792ebf

Browse files
authored
Merge pull request #28 from docker/refactor-makefile
Add lint target to the Makefile
2 parents 9011581 + 8656162 commit 3792ebf

2 files changed

Lines changed: 57 additions & 1 deletion

File tree

Dockerfile

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22
ARG GO_VERSION=1.14.3
33
ARG CLI_VERSION=19.03.9
44
ARG ALPINE_VERSION=3.12.0
5+
ARG GOLANGCI_LINT_VERSION=v1.27.0-alpine
56

7+
####
8+
# BUILDER
9+
####
610
FROM golang:${GO_VERSION} AS builder
711
WORKDIR /go/src/github.com/docker/docker-scan
812

@@ -12,23 +16,57 @@ RUN --mount=type=cache,target=/root/.cache/go-build \
1216
go mod download
1317
COPY . .
1418

19+
####
20+
# LINT-BASE
21+
####
22+
FROM golangci/golangci-lint:${GOLANGCI_LINT_VERSION} AS lint-base
23+
24+
####
25+
# LINT
26+
####
27+
FROM builder AS lint
28+
ENV CGO_ENABLED=0
29+
COPY --from=lint-base /usr/bin/golangci-lint /usr/bin/golangci-lint
30+
RUN --mount=target=. \
31+
--mount=type=cache,target=/root/.cache/go-build \
32+
--mount=type=cache,target=/root/.cache/golangci-lint \
33+
make linter
34+
35+
####
36+
# BUILD
37+
####
1538
FROM builder AS build
1639
RUN --mount=target=. \
1740
--mount=type=cache,target=/root/.cache/go-build \
1841
make build
1942

43+
####
44+
# SCAN
45+
####
2046
FROM scratch AS scan
2147
COPY --from=build /go/src/github.com/docker/docker-scan/bin/docker-scan /docker-scan
2248

49+
####
50+
# CROSS_BUILD
51+
####
2352
FROM builder AS cross-build
2453
RUN --mount=type=cache,target=/root/.cache/go-build \
2554
make dist
2655

56+
####
57+
# CROSS
58+
####
2759
FROM scratch AS cross
2860
COPY --from=cross-build /go/src/github.com/docker/docker-scan/dist /
2961

62+
####
63+
# CLI
64+
####
3065
FROM docker:${CLI_VERSION} AS cli
3166

67+
####
68+
# SNYK
69+
####
3270
FROM alpine:${ALPINE_VERSION} AS snyk
3371
ARG SNYK_DESKTOP_VERSION=1.332.0
3472
ARG SNYK_USER_VERSION=1.334.0
@@ -40,6 +78,9 @@ RUN wget https://github.com/snyk/snyk/releases/download/v${SNYK_DESKTOP_VERSION}
4078
# install snyk user binary
4179
RUN wget https://github.com/snyk/snyk/releases/download/v${SNYK_USER_VERSION}/snyk-linux -O snyk-user
4280

81+
####
82+
# E2E
83+
####
4384
FROM builder AS e2e
4485
ARG SNYK_DESKTOP_VERSION=1.332.0
4586
ENV SNYK_DESKTOP_VERSION=${SNYK_DESKTOP_VERSION}

Makefile

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
export DOCKER_BUILDKIT=1
22

33
NULL := /dev/null
4+
5+
# Pinned Versions
46
SNYK_DESKTOP_VERSION := 1.332.0
57
SNYK_USER_VERSION := 1.334.0
68
GO_VERSION := 1.14.3
79
CLI_VERSION := 19.03.9
10+
ALPINE_VERSION := 3.12.0
11+
GOLANGCI_LINT_VERSION := v1.27.0-alpine
12+
813
BUILD_ARGS := --build-arg SNYK_DESKTOP_VERSION=$(SNYK_DESKTOP_VERSION)\
914
--build-arg SNYK_USER_VERSION=$(SNYK_USER_VERSION)\
1015
--build-arg GO_VERSION=$(GO_VERSION)\
11-
--build-arg CLI_VERSION=$(CLI_VERSION)
16+
--build-arg CLI_VERSION=$(CLI_VERSION)\
17+
--build-arg ALPINE_VERSION=$(ALPINE_VERSION)\
18+
--build-arg GOLANGCI_LINT_VERSION=$(GOLANGCI_LINT_VERSION)
1219

1320
ifeq ($(COMMIT),)
1421
COMMIT := $(shell git rev-parse --short HEAD 2> $(NULL))
@@ -65,6 +72,14 @@ e2e: e2e-build
6572
e2e-tests:
6673
go test -ldflags=$(LDFLAGS) ./e2e
6774

75+
.PHONY: lint
76+
lint: ## Run the go linter
77+
@docker build . --target lint
78+
79+
.PHONY: linter
80+
linter:
81+
golangci-lint run --timeout 10m0s ./...
82+
6883
help: ## Show help
6984
@echo Please specify a build target. The choices are:
7085
@grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

0 commit comments

Comments
 (0)