Skip to content

Commit 0b1979c

Browse files
committed
Cross build & package compose-cli plugin
Signed-off-by: Guillaume Tardif <[email protected]>
1 parent f7b382c commit 0b1979c

File tree

2 files changed

+29
-11
lines changed

2 files changed

+29
-11
lines changed

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ RUN --mount=target=. \
7474
GOARCH=${TARGETARCH} \
7575
BUILD_TAGS=${BUILD_TAGS} \
7676
GIT_TAG=${GIT_TAG} \
77-
make BINARY=/out/docker -f builder.Makefile cli
77+
make BINARY=/out/docker COMPOSE_BINARY=/out/docker-compose -f builder.Makefile cli
7878

7979
FROM base AS make-cross
8080
ARG BUILD_TAGS
@@ -84,7 +84,7 @@ RUN --mount=target=. \
8484
--mount=type=cache,target=/root/.cache/go-build \
8585
BUILD_TAGS=${BUILD_TAGS} \
8686
GIT_TAG=${GIT_TAG} \
87-
make BINARY=/out/docker -f builder.Makefile cross
87+
make BINARY=/out/docker COMPOSE_BINARY=/out/docker-compose -f builder.Makefile cross
8888

8989
FROM scratch AS protos
9090
COPY --from=make-protos /compose-cli/cli/server/protos .

builder.Makefile

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,18 @@ ifdef BUILD_TAGS
4545
LINT_TAGS=--build-tags $(BUILD_TAGS)
4646
endif
4747

48-
TAR_TRANSFORM:=--transform s/packaging/docker/ --transform s/bin/docker/ --transform s/docker-linux-amd64/docker/ --transform s/docker-darwin-amd64/docker/ --transform s/docker-linux-arm64/docker/ --transform s/docker-darwin-arm64/docker/
48+
TAR_TRANSFORM:=--transform s/packaging/docker/ --transform s/bin/docker/ \
49+
--transform s/docker-linux-amd64/docker/ --transform s/docker-linux-arm64/docker/ \
50+
--transform s/docker-darwin-amd64/docker/ --transform s/docker-darwin-arm64/docker/ \
51+
--transform s/docker-compose-linux-amd64/docker-compose/ --transform s/docker-compose-linux-arm64/docker-compose/ \
52+
--transform s/docker-compose-darwin-amd64/docker-compose/ --transform s/docker-compose-darwin-arm64/docker-compose/
53+
4954
ifneq ($(findstring bsd,$(shell tar --version)),)
50-
TAR_TRANSFORM=-s /packaging/docker/ -s /bin/docker/ -s /docker-linux-amd64/docker/ -s /docker-darwin-amd64/docker/ -s /docker-linux-arm64/docker/ -s /docker-darwin-arm64/docker/
55+
TAR_TRANSFORM=-s /packaging/docker/ -s /bin/docker/ \
56+
-s /docker-linux-amd64/docker/ -s /docker-linux-arm64/docker/ \
57+
-s /docker-darwin-amd64/docker/ -s /docker-darwin-arm64/docker/ \
58+
-s /docker-compose-linux-amd64/docker-compose/ -s /docker-compose-linux-arm64/docker-compose/ \
59+
-s /docker-compose-darwin-amd64/docker-compose/ -s /docker-compose-darwin-arm64/docker-compose/
5160
endif
5261

5362
all: cli
@@ -60,18 +69,26 @@ protos:
6069
cli: compose-plugin
6170
GOOS=${GOOS} GOARCH=${GOARCH} $(GO_BUILD) $(TAGS) -o $(BINARY_WITH_EXTENSION) ./cli
6271

63-
.PHONY: cli
72+
.PHONY: compose-plugin
6473
compose-plugin:
6574
GOOS=${GOOS} GOARCH=${GOARCH} $(GO_BUILD) $(TAGS) -o $(COMPOSE_BINARY_WITH_EXTENSION) ./compose_plugin
6675

6776
.PHONY: cross
68-
cross:
77+
cross: cross-compose-plugin
6978
GOOS=linux GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-linux-amd64 ./cli
7079
GOOS=linux GOARCH=arm64 $(GO_BUILD) $(TAGS) -o $(BINARY)-linux-arm64 ./cli
7180
GOOS=darwin GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-darwin-amd64 ./cli
7281
GOOS=darwin GOARCH=arm64 $(GO_BUILD) $(TAGS) -o $(BINARY)-darwin-arm64 ./cli
7382
GOOS=windows GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-windows-amd64.exe ./cli
7483

84+
.PHONY: cross-compose-plugin
85+
cross-compose-plugin:
86+
GOOS=linux GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(COMPOSE_BINARY)-linux-amd64 ./compose_plugin
87+
GOOS=linux GOARCH=arm64 $(GO_BUILD) $(TAGS) -o $(COMPOSE_BINARY)-linux-arm64 ./compose_plugin
88+
GOOS=darwin GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(COMPOSE_BINARY)-darwin-amd64 ./compose_plugin
89+
GOOS=darwin GOARCH=arm64 $(GO_BUILD) $(TAGS) -o $(COMPOSE_BINARY)-darwin-arm64 ./compose_plugin
90+
GOOS=windows GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(COMPOSE_BINARY)-windows-amd64.exe ./compose_plugin
91+
7592
.PHONY: test
7693
test:
7794
go test $(TAGS) -cover $(shell go list $(TAGS) ./... | grep -vE 'e2e')
@@ -95,12 +112,13 @@ check-go-mod:
95112
.PHONY: package
96113
package: cross
97114
mkdir -p dist
98-
tar -czf dist/docker-linux-amd64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-linux-amd64
99-
tar -czf dist/docker-linux-arm64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-linux-arm64
100-
tar -czf dist/docker-darwin-amd64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-darwin-amd64
101-
tar -czf dist/docker-darwin-arm64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-darwin-arm64
115+
tar -czf dist/docker-linux-amd64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-linux-amd64 $(COMPOSE_BINARY)-linux-amd64
116+
tar -czf dist/docker-linux-arm64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-linux-arm64 $(COMPOSE_BINARY)-linux-arm64
117+
tar -czf dist/docker-darwin-amd64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-darwin-amd64 $(COMPOSE_BINARY)-darwin-amd64
118+
tar -czf dist/docker-darwin-arm64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-darwin-arm64 $(COMPOSE_BINARY)-darwin-arm64
102119
cp $(BINARY)-windows-amd64.exe $(WORK_DIR)/docker.exe
103-
rm -f dist/docker-windows-amd64.zip && zip dist/docker-windows-amd64.zip -j packaging/LICENSE $(WORK_DIR)/docker.exe
120+
cp $(COMPOSE_BINARY)-windows-amd64.exe $(WORK_DIR)/docker-compose.exe
121+
rm -f dist/docker-windows-amd64.zip && zip dist/docker-windows-amd64.zip -j packaging/LICENSE $(WORK_DIR)/docker.exe $(WORK_DIR)/docker-compose.exe
104122
rm -r $(WORK_DIR)
105123

106124
.PHONY: yamldocs

0 commit comments

Comments
 (0)