Browse Source

build: Add containerized go mod tidy

Signed-off-by: Chris Crone <[email protected]>
Chris Crone 5 years ago
parent
commit
78190f8346
2 changed files with 13 additions and 1 deletions
  1. 9 0
      Dockerfile
  2. 4 1
      Makefile

+ 9 - 0
Dockerfile

@@ -111,6 +111,15 @@ RUN go get -u github.com/kunalkushwaha/ltag
 RUN --mount=target=. \
     make -f builder.Makefile check-license-headers
 
+FROM base AS make-go-mod-tidy
+COPY . .
+RUN --mount=type=cache,target=/go/pkg/mod \
+    go mod tidy
+
+FROM scratch AS go-mod-tidy
+COPY --from=make-go-mod-tidy /compose-cli/go.mod .
+COPY --from=make-go-mod-tidy /compose-cli/go.sum .
+
 FROM base AS check-go-mod
 COPY . .
 RUN make -f builder.Makefile check-go-mod

+ 4 - 1
Makefile

@@ -92,6 +92,9 @@ moby-cli-link: ## Create com.docker.cli symlink if does not already exist
 validate-headers: ## Check license header for all files
 	@docker build . --target check-license-headers
 
+go-mod-tidy: ## Run go mod tidy in a container and output resulting go.mod and go.sum
+	@docker build . --target go-mod-tidy --output .
+
 validate-go-mod: ## Validate go.mod and go.sum are up-to-date
 	@docker build . --target check-go-mod
 
@@ -128,4 +131,4 @@ help: ## Show help
 
 FORCE:
 
-.PHONY: all validate protos cli e2e-local cross test cache-clear lint check-dependencies serve classic-link help clean-aci-e2e
+.PHONY: all validate protos cli e2e-local cross test cache-clear lint check-dependencies serve classic-link help clean-aci-e2e go-mod-tidy