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

Commit ea07e60

Browse files
authored
Merge pull request #29 from docker/split-makefile
Split Makefile
2 parents 3792ebf + fdb2734 commit ea07e60

3 files changed

Lines changed: 43 additions & 44 deletions

File tree

Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ COPY --from=lint-base /usr/bin/golangci-lint /usr/bin/golangci-lint
3030
RUN --mount=target=. \
3131
--mount=type=cache,target=/root/.cache/go-build \
3232
--mount=type=cache,target=/root/.cache/golangci-lint \
33-
make linter
33+
make -f builder.Makefile lint
3434

3535
####
3636
# BUILD
3737
####
3838
FROM builder AS build
3939
RUN --mount=target=. \
4040
--mount=type=cache,target=/root/.cache/go-build \
41-
make build
41+
make -f builder.Makefile build
4242

4343
####
4444
# SCAN
@@ -51,7 +51,7 @@ COPY --from=build /go/src/github.com/docker/docker-scan/bin/docker-scan /docker-
5151
####
5252
FROM builder AS cross-build
5353
RUN --mount=type=cache,target=/root/.cache/go-build \
54-
make dist
54+
make -f builder.Makefile cross
5555

5656
####
5757
# CROSS
@@ -95,4 +95,4 @@ RUN chmod +x /root/.docker/scan/snyk /root/e2e/snyk
9595
COPY --from=cli /usr/local/bin/docker /usr/local/bin/docker
9696
# install docker-scan plugin
9797
COPY --from=cross-build /go/src/github.com/docker/docker-scan/dist/docker-scan_linux_amd64/docker-scan/docker-scan /root/.docker/cli-plugins/docker-scan
98-
CMD ["make", "e2e-tests"]
98+
CMD ["make", "-f", "builder.Makefile", "e2e"]

Makefile

Lines changed: 3 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
export DOCKER_BUILDKIT=1
22

3-
NULL := /dev/null
4-
53
# Pinned Versions
64
SNYK_DESKTOP_VERSION := 1.332.0
75
SNYK_USER_VERSION := 1.334.0
@@ -17,30 +15,8 @@ BUILD_ARGS := --build-arg SNYK_DESKTOP_VERSION=$(SNYK_DESKTOP_VERSION)\
1715
--build-arg ALPINE_VERSION=$(ALPINE_VERSION)\
1816
--build-arg GOLANGCI_LINT_VERSION=$(GOLANGCI_LINT_VERSION)
1917

20-
ifeq ($(COMMIT),)
21-
COMMIT := $(shell git rev-parse --short HEAD 2> $(NULL))
22-
endif
23-
24-
ifeq ($(TAG_NAME),)
25-
TAG_NAME := $(shell git describe --always --dirty --abbrev=10 2> $(NULL))
26-
endif
27-
28-
PKG_NAME=github.com/docker/docker-scan
29-
STATIC_FLAGS= CGO_ENABLED=0
30-
LDFLAGS := "-s -w \
31-
-X $(PKG_NAME)/internal.GitCommit=$(COMMIT) \
32-
-X $(PKG_NAME)/internal.Version=$(TAG_NAME)"
33-
34-
GO_BUILD = $(STATIC_FLAGS) go build -trimpath -ldflags=$(LDFLAGS)
35-
BINARY=docker-scan
36-
3718
.PHONY: build
38-
build: ## Build docker-scan
39-
mkdir -p bin
40-
$(GO_BUILD) -o bin/$(BINARY) .
41-
42-
.PHONY: dbuild
43-
dbuild: ## Build docker-scan in a container
19+
build: ## Build docker-scan in a container
4420
docker build $(BUILD_ARGS) . \
4521
--output type=local,dest=./bin \
4622
--target scan
@@ -51,35 +27,22 @@ cross: ## Cross compile docker-scan binaries in a container
5127
--output type=local,dest=./dist \
5228
--target cross
5329

54-
dist: ## Build cross compiled docker-scan binaries
55-
GOOS=linux GOARCH=amd64 $(GO_BUILD) -o dist/docker-scan_linux_amd64/docker-scan/$(BINARY) .
56-
GOOS=darwin GOARCH=amd64 $(GO_BUILD) -o dist/docker-scan_darwin_amd64/docker-scan/$(BINARY) .
57-
GOOS=windows GOARCH=amd64 $(GO_BUILD) -o dist/docker-scan_windows_amd64/docker-scan/$(BINARY).exe .
58-
5930
.PHONY: install
6031
install: build ## Install docker-scan to your local cli-plugins directory
6132
cp bin/docker-scan ~/.docker/cli-plugins
6233

6334
.PHONY: e2e-build
64-
e2e-build: ## Build e2e docker image
35+
e2e-build:
6536
docker build $(BUILD_ARGS) . --target e2e -t docker-scan:e2e
6637

6738
.PHONY: e2e
68-
e2e: e2e-build
39+
e2e: e2e-build ## Run the end-to-end tests
6940
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock docker-scan:e2e
7041

71-
.PHONY: e2e-tests
72-
e2e-tests:
73-
go test -ldflags=$(LDFLAGS) ./e2e
74-
7542
.PHONY: lint
7643
lint: ## Run the go linter
7744
@docker build . --target lint
7845

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

builder.Makefile

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
NULL := /dev/null
2+
3+
ifeq ($(COMMIT),)
4+
COMMIT := $(shell git rev-parse --short HEAD 2> $(NULL))
5+
endif
6+
7+
ifeq ($(TAG_NAME),)
8+
TAG_NAME := $(shell git describe --always --dirty --abbrev=10 2> $(NULL))
9+
endif
10+
11+
PKG_NAME=github.com/docker/docker-scan
12+
STATIC_FLAGS= CGO_ENABLED=0
13+
LDFLAGS := "-s -w \
14+
-X $(PKG_NAME)/internal.GitCommit=$(COMMIT) \
15+
-X $(PKG_NAME)/internal.Version=$(TAG_NAME)"
16+
17+
GO_BUILD = $(STATIC_FLAGS) go build -trimpath -ldflags=$(LDFLAGS)
18+
BINARY=docker-scan
19+
20+
.PHONY: lint
21+
lint:
22+
golangci-lint run --timeout 10m0s ./...
23+
24+
.PHONY: e2e
25+
e2e:
26+
go test -ldflags=$(LDFLAGS) ./e2e
27+
28+
cross:
29+
GOOS=linux GOARCH=amd64 $(GO_BUILD) -o dist/docker-scan_linux_amd64/docker-scan/$(BINARY) .
30+
GOOS=darwin GOARCH=amd64 $(GO_BUILD) -o dist/docker-scan_darwin_amd64/docker-scan/$(BINARY) .
31+
GOOS=windows GOARCH=amd64 $(GO_BUILD) -o dist/docker-scan_windows_amd64/docker-scan/$(BINARY).exe .
32+
33+
.PHONY: build
34+
build:
35+
mkdir -p bin
36+
$(GO_BUILD) -o bin/$(BINARY) .

0 commit comments

Comments
 (0)