Skip to content

Commit 045246c

Browse files
committed
Cleanup make
1 parent 9bd14c1 commit 045246c

File tree

2 files changed

+18
-100
lines changed

2 files changed

+18
-100
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ release/
1919
build/
2020
gcloud/
2121
dist/
22+
bin/

Makefile

Lines changed: 17 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,31 @@
1-
# Makefile for releasing Alpine multi-arch Docker images
1+
# Makefile for releasing podinfo
22
#
33
# The release version is controlled from pkg/version
44

5-
EMPTY:=
6-
SPACE:=$(EMPTY) $(EMPTY)
7-
COMMA:=$(EMPTY),$(EMPTY)
85
NAME:=podinfo
96
DOCKER_REPOSITORY:=stefanprodan
107
DOCKER_IMAGE_NAME:=$(DOCKER_REPOSITORY)/$(NAME)
11-
GITREPO:=github.com/stefanprodan/k8s-podinfo
128
GITCOMMIT:=$(shell git describe --dirty --always)
139
VERSION:=$(shell grep 'VERSION' pkg/version/version.go | awk '{ print $$4 }' | tr -d '"')
14-
LINUX_ARCH:=arm arm64 ppc64le s390x amd64
15-
PLATFORMS:=$(subst $(SPACE),$(COMMA),$(foreach arch,$(LINUX_ARCH),linux/$(arch)))
1610

17-
.PHONY: build
18-
build:
19-
@echo Cleaning old builds
20-
@rm -rf build && mkdir build
21-
@echo Building: linux/$(LINUX_ARCH) $(VERSION) ;\
22-
for arch in $(LINUX_ARCH); do \
23-
mkdir -p build/linux/$$arch && CGO_ENABLED=0 GOOS=linux GOARCH=$$arch go build -ldflags="-s -w -X $(GITREPO)/pkg/version.REVISION=$(GITCOMMIT)" -o build/linux/$$arch/$(NAME) ./cmd/$(NAME) ;\
24-
cp -r ui/ build/linux/$$arch/ui;\
25-
done
26-
27-
.PHONY: tar
28-
tar: build
29-
@echo Cleaning old releases
30-
@rm -rf release && mkdir release
31-
for arch in $(LINUX_ARCH); do \
32-
tar -zcf release/$(NAME)_$(VERSION)_linux_$$arch.tgz -C build/linux/$$arch $(NAME) ;\
33-
done
34-
35-
.PHONY: docker-build
36-
docker-build: tar
37-
# Steps:
38-
# 1. Copy appropriate podinfo binary to build/docker/linux/<arch>
39-
# 2. Copy Dockerfile to build/docker/linux/<arch>
40-
# 3. Replace base image from alpine:latest to <arch>/alpine:latest
41-
# 4. Comment RUN in Dockerfile
42-
# <arch>:
43-
# arm: arm32v6
44-
# arm64: arm64v8
45-
rm -rf build/docker
46-
@for arch in $(LINUX_ARCH); do \
47-
mkdir -p build/docker/linux/$$arch ;\
48-
tar -xzf release/$(NAME)_$(VERSION)_linux_$$arch.tgz -C build/docker/linux/$$arch ;\
49-
cp -r ui/ build/docker/linux/$$arch/ui;\
50-
if [ $$arch == amd64 ]; then \
51-
cp Dockerfile build/docker/linux/$$arch ;\
52-
cp Dockerfile build/docker/linux/$$arch/Dockerfile.in ;\
53-
else \
54-
cp Dockerfile.build build/docker/linux/$$arch/Dockerfile ;\
55-
cp Dockerfile.build build/docker/linux/$$arch/Dockerfile.in ;\
56-
case $$arch in \
57-
arm) \
58-
BASEIMAGE=arm32v6 ;\
59-
;; \
60-
arm64) \
61-
BASEIMAGE=arm64v8 ;\
62-
;; \
63-
*) \
64-
BASEIMAGE=$$arch ;\
65-
;; \
66-
esac ;\
67-
sed -e "s/alpine:latest/$$BASEIMAGE\\/alpine:latest/" -e "s/^\\s*RUN/#RUN/" build/docker/linux/$$arch/Dockerfile.in > build/docker/linux/$$arch/Dockerfile ;\
68-
fi ;\
69-
docker build -t $(NAME) build/docker/linux/$$arch ;\
70-
docker tag $(NAME) $(DOCKER_IMAGE_NAME):$(NAME)-$$arch ;\
71-
done
72-
73-
.PHONY: docker-push
74-
docker-push:
75-
@echo Pushing: $(VERSION) to $(DOCKER_IMAGE_NAME)
76-
for arch in $(LINUX_ARCH); do \
77-
docker push $(DOCKER_IMAGE_NAME):$(NAME)-$$arch ;\
78-
done
79-
manifest-tool push from-args --platforms $(PLATFORMS) --template $(DOCKER_IMAGE_NAME):podinfo-ARCH --target $(DOCKER_IMAGE_NAME):$(VERSION)
80-
manifest-tool push from-args --platforms $(PLATFORMS) --template $(DOCKER_IMAGE_NAME):podinfo-ARCH --target $(DOCKER_IMAGE_NAME):latest
11+
run:
12+
GO111MODULE=on go run cmd/podinfo/*
8113

82-
.PHONY: quay-push
83-
quay-push:
84-
@echo Pushing: $(VERSION) to quay.io/$(DOCKER_IMAGE_NAME):$(VERSION)
85-
@docker build -t quay.io/$(DOCKER_IMAGE_NAME):$(VERSION) -f Dockerfile.ci . ; docker push quay.io/$(DOCKER_IMAGE_NAME):$(VERSION)
86-
87-
.PHONY: clean
88-
clean:
89-
rm -rf release
90-
rm -rf build
14+
test:
15+
GO111MODULE=on go test -v -race ./...
9116

92-
.PHONY: gcr-build
93-
gcr-build:
94-
docker build -t gcr.io/$(DOCKER_IMAGE_NAME):$(VERSION) -f Dockerfile.ci .
17+
build:
18+
GO111MODULE=on GIT_COMMIT=$$(git rev-list -1 HEAD) && GO111MODULE=on CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/stefanprodan/podinfo/pkg/version.REVISION=$${GIT_COMMIT}" -a -o ./bin/podinfo ./cmd/podinfo/*
19+
GO111MODULE=on GIT_COMMIT=$$(git rev-list -1 HEAD) && GO111MODULE=on CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/stefanprodan/podinfo/pkg/version.REVISION=$${GIT_COMMIT}" -a -o ./bin/podcli ./cmd/podcli/*
9520

96-
.PHONY: test
97-
test:
98-
go test -v -race ./...
21+
build-charts:
22+
helm lint charts/*
23+
helm package charts/*
9924

100-
.PHONY: dep
101-
dep:
102-
go get -u github.com/golang/dep/cmd/dep
103-
go get -u github.com/estesp/manifest-tool
25+
build-container:
26+
docker build -t $(DOCKER_IMAGE_NAME):$(VERSION) .
10427

105-
.PHONY: charts
106-
charts:
107-
cd charts/ && helm package podinfo/
108-
cd charts/ && helm package podinfo-istio/
109-
cd charts/ && helm package loadtest/
110-
cd charts/ && helm package ambassador/
111-
cd charts/ && helm package grafana/
112-
cd charts/ && helm package ngrok/
113-
mv charts/*.tgz docs/
114-
helm repo index docs --url https://stefanprodan.github.io/k8s-podinfo --merge ./docs/index.yaml
28+
push-container:
29+
docker push $(DOCKER_IMAGE_NAME):$(VERSION)
30+
docker tag $(DOCKER_IMAGE_NAME):$(VERSION) quay.io/$(DOCKER_IMAGE_NAME):$(VERSION)
31+
docker push quay.io/$(DOCKER_IMAGE_NAME):$(VERSION)

0 commit comments

Comments
 (0)