Skip to content

Commit 7c8570f

Browse files
committed
Generate zip files for Windows releases
1 parent 61130f4 commit 7c8570f

File tree

2 files changed

+40
-26
lines changed

2 files changed

+40
-26
lines changed

Dockerfile.build

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
FROM golang:1.8.1
22

3+
RUN apt-get update && apt-get install -y zip
4+
35
RUN go get -d golang.org/x/sys/unix
46
RUN go get -d github.com/Microsoft/hcsshim
57
RUN go get -d github.com/containernetworking/cni/pkg/skel

Makefile

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,21 @@ BUILD_CONTAINER_NAME = acn-builder
4545
BUILD_CONTAINER_REPO_PATH = /go/src/github.com/Azure/azure-container-networking
4646
BUILD_USER ?= $(shell id -u)
4747

48-
# TAR file names.
49-
CNM_TAR_NAME = azure-vnet-cnm-$(GOOS)-$(GOARCH)-$(VERSION).tgz
50-
CNI_TAR_NAME = azure-vnet-cni-$(GOOS)-$(GOARCH)-$(VERSION).tgz
48+
# Target OS specific parameters.
49+
ifeq ($(GOOS),linux)
50+
# Linux.
51+
ARCHIVE_CMD = tar -czvf
52+
ARCHIVE_EXT = tgz
53+
else
54+
# Windows.
55+
ARCHIVE_CMD = zip -9lq
56+
ARCHIVE_EXT = zip
57+
EXE_EXT = .exe
58+
endif
59+
60+
# Archive file names.
61+
CNM_ARCHIVE_NAME = azure-vnet-cnm-$(GOOS)-$(GOARCH)-$(VERSION).$(ARCHIVE_EXT)
62+
CNI_ARCHIVE_NAME = azure-vnet-cni-$(GOOS)-$(GOARCH)-$(VERSION).$(ARCHIVE_EXT)
5163

5264
# Docker libnetwork (CNM) plugin v2 image parameters.
5365
CNM_PLUGIN_IMAGE ?= microsoft/azure-vnet-plugin
@@ -58,10 +70,10 @@ VERSION ?= $(shell git describe --tags --always --dirty)
5870
ENSURE_OUTPUT_DIR_EXISTS := $(shell mkdir -p $(OUTPUT_DIR))
5971

6072
# Shorthand target names for convenience.
61-
azure-cnm-plugin: $(CNM_BUILD_DIR)/azure-vnet-plugin cnm-tar
62-
azure-vnet: $(CNI_BUILD_DIR)/azure-vnet
63-
azure-vnet-ipam: $(CNI_BUILD_DIR)/azure-vnet-ipam
64-
azure-cni-plugin: azure-vnet azure-vnet-ipam cni-tar
73+
azure-cnm-plugin: $(CNM_BUILD_DIR)/azure-vnet-plugin$(EXE_EXT) cnm-archive
74+
azure-vnet: $(CNI_BUILD_DIR)/azure-vnet$(EXE_EXT)
75+
azure-vnet-ipam: $(CNI_BUILD_DIR)/azure-vnet-ipam$(EXE_EXT)
76+
azure-cni-plugin: azure-vnet azure-vnet-ipam cni-archive
6577
all-binaries: azure-cnm-plugin azure-cni-plugin
6678

6779
# Clean all build artifacts.
@@ -70,16 +82,16 @@ clean:
7082
rm -rf $(OUTPUT_DIR)
7183

7284
# Build the Azure CNM plugin.
73-
$(CNM_BUILD_DIR)/azure-vnet-plugin: $(CNMFILES)
74-
go build -v -o $(CNM_BUILD_DIR)/azure-vnet-plugin -ldflags "-X main.version=$(VERSION) -s -w" $(CNM_DIR)/*.go
85+
$(CNM_BUILD_DIR)/azure-vnet-plugin$(EXE_EXT): $(CNMFILES)
86+
go build -v -o $(CNM_BUILD_DIR)/azure-vnet-plugin$(EXE_EXT) -ldflags "-X main.version=$(VERSION) -s -w" $(CNM_DIR)/*.go
7587

7688
# Build the Azure CNI network plugin.
77-
$(CNI_BUILD_DIR)/azure-vnet: $(CNIFILES)
78-
go build -v -o $(CNI_BUILD_DIR)/azure-vnet -ldflags "-X main.version=$(VERSION) -s -w" $(CNI_NET_DIR)/*.go
89+
$(CNI_BUILD_DIR)/azure-vnet$(EXE_EXT): $(CNIFILES)
90+
go build -v -o $(CNI_BUILD_DIR)/azure-vnet$(EXE_EXT) -ldflags "-X main.version=$(VERSION) -s -w" $(CNI_NET_DIR)/*.go
7991

8092
# Build the Azure CNI IPAM plugin.
81-
$(CNI_BUILD_DIR)/azure-vnet-ipam: $(CNIFILES)
82-
go build -v -o $(CNI_BUILD_DIR)/azure-vnet-ipam -ldflags "-X main.version=$(VERSION) -s -w" $(CNI_IPAM_DIR)/*.go
93+
$(CNI_BUILD_DIR)/azure-vnet-ipam$(EXE_EXT): $(CNIFILES)
94+
go build -v -o $(CNI_BUILD_DIR)/azure-vnet-ipam$(EXE_EXT) -ldflags "-X main.version=$(VERSION) -s -w" $(CNI_IPAM_DIR)/*.go
8395

8496
# Build all binaries in a container.
8597
.PHONY: all-binaries-containerized
@@ -136,17 +148,17 @@ azure-vnet-plugin-image: azure-cnm-plugin
136148
publish-azure-vnet-plugin-image:
137149
docker plugin push $(CNM_PLUGIN_IMAGE):$(VERSION)
138150

139-
# Create a CNI tarball for the current platform.
140-
.PHONY: cni-tar
141-
cni-tar:
151+
# Create a CNI archive for the target platform.
152+
.PHONY: cni-archive
153+
cni-archive:
142154
cp cni/azure.conf $(CNI_BUILD_DIR)/10-azure.conf
143-
chmod 0755 $(CNI_BUILD_DIR)/azure-vnet $(CNI_BUILD_DIR)/azure-vnet-ipam
144-
cd $(CNI_BUILD_DIR) && tar -czvf $(CNI_TAR_NAME) azure-vnet azure-vnet-ipam 10-azure.conf
145-
chown $(BUILD_USER):$(BUILD_USER) $(CNI_BUILD_DIR)/$(CNI_TAR_NAME)
146-
147-
# Create a CNM tarball for the current platform.
148-
.PHONY: cnm-tar
149-
cnm-tar:
150-
chmod 0755 $(CNM_BUILD_DIR)/azure-vnet-plugin
151-
cd $(CNM_BUILD_DIR) && tar -czvf $(CNM_TAR_NAME) azure-vnet-plugin
152-
chown $(BUILD_USER):$(BUILD_USER) $(CNM_BUILD_DIR)/$(CNM_TAR_NAME)
155+
chmod 0755 $(CNI_BUILD_DIR)/azure-vnet$(EXE_EXT) $(CNI_BUILD_DIR)/azure-vnet-ipam$(EXE_EXT)
156+
cd $(CNI_BUILD_DIR) && $(ARCHIVE_CMD) $(CNI_ARCHIVE_NAME) azure-vnet$(EXE_EXT) azure-vnet-ipam$(EXE_EXT) 10-azure.conf
157+
chown $(BUILD_USER):$(BUILD_USER) $(CNI_BUILD_DIR)/$(CNI_ARCHIVE_NAME)
158+
159+
# Create a CNM archive for the target platform.
160+
.PHONY: cnm-archive
161+
cnm-archive:
162+
chmod 0755 $(CNM_BUILD_DIR)/azure-vnet-plugin$(EXE_EXT)
163+
cd $(CNM_BUILD_DIR) && $(ARCHIVE_CMD) $(CNM_ARCHIVE_NAME) azure-vnet-plugin$(EXE_EXT)
164+
chown $(BUILD_USER):$(BUILD_USER) $(CNM_BUILD_DIR)/$(CNM_ARCHIVE_NAME)

0 commit comments

Comments
 (0)