@@ -35,83 +35,113 @@ $(PACKAGES_DIR):
3535 @mkdir -p $(PACKAGES_DIR ) /deb && mkdir -p $(PACKAGES_DIR ) /rpm && mkdir -p $(PACKAGES_DIR ) /apk
3636
3737.PHONY : package
38- package : gpg-key $(PACKAGES_DIR ) # ### Create final packages for all supported distros
39- # Create deb packages
38+ package : $(PACKAGES_DIR ) # ### Create final packages for all supported distros
39+
40+ # Build binaries for all supported architectures
41+ @for arch in $(DEB_ARCHS); do \
42+ mkdir -p $(BUILD_DIR)/$${arch}; \
43+ cp .nfpm.yaml .nfpm.$${arch}.yaml; \
44+ sed -i.bak "s/\^ARCH\^/$${arch}/g" ".nfpm.$${arch}.yaml"; \
45+ sed -i.bak "s/\^BUILD_PATH\^/\.\/build\/$${arch}/g" ".nfpm.$${arch}.yaml"; \
46+ echo "Building linux/$${arch}"; \
47+ GOWORK=off CGO_ENABLED=0 GOARCH=$${arch} GOOS=linux \
48+ go build -pgo=auto -ldflags=${LDFLAGS} \
49+ -o $(BUILD_DIR)/$${arch}/$(BINARY_NAME) \
50+ $(PROJECT_DIR)/$(PROJECT_FILE); \
51+ rm -f .nfpm.$$arch.yaml.bak; \
52+ ls -la "$(BUILD_DIR)/$${arch}/$(BINARY_NAME)"; \
53+ done; \
54+
55+ # Create deb packages
4056 @for arch in $(DEB_ARCHS); do \
41- GOWORK=off CGO_ENABLED=0 GOARCH=$$ {arch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH ) $(PROJECT_DIR ) /$(PROJECT_FILE ) ; \
4257 for distro in $(DEB_DISTROS); do \
43- deb_codename=` echo $$ distro | cut -d- -f 2` ; \
44- VERSION=$(PACKAGE_VERSION ) ~$$ {deb_codename} ARCH=$$ {arch} nfpm pkg --config .nfpm.yaml --packager deb --target ${PACKAGES_DIR} /deb/${PACKAGE_PREFIX} _$(PACKAGE_VERSION ) ~$$ {deb_codename}_$$ {arch}.deb; \
58+ deb_codename=`echo $${distro} | cut -d- -f 2`; \
59+ VERSION=$(PACKAGE_VERSION)~$${deb_codename} \
60+ nfpm pkg --config .nfpm.$${arch}.yaml \
61+ --packager deb \
62+ --target ${PACKAGES_DIR}/deb/${PACKAGE_PREFIX}_$(PACKAGE_VERSION)~$${deb_codename}_$${arch}.deb; \
4563 done; \
46- rm -rf $(BINARY_PATH ) ; \
4764 done; \
4865
49- # Create rpm packages
50- @GOWORK=off CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH ) $(PROJECT_DIR ) /$(PROJECT_FILE )
66+ # Create rpm packages
5167 @for distro in $(RPM_DISTROS); do \
5268 rpm_distro=`echo $$distro | cut -d- -f 1`; \
5369 rpm_major=`echo $$distro | cut -d- -f 2`; \
5470 rpm_codename='na'; \
5571 if [ "$$rpm_distro" = "suse" ]; then rpm_codename="sles$$rpm_major"; \
5672 fi; \
5773 if [ "$$rpm_codename" != "na" ]; then \
58- VERSION=$(PACKAGE_VERSION ) ARCH=amd64 nfpm pkg --config .nfpm.yaml --packager rpm --target $(PACKAGES_DIR ) /rpm/${PACKAGE_PREFIX} -$(PACKAGE_VERSION ) .$$ {rpm_codename}.ngx.${RPM_ARCH} .rpm; \
74+ VERSION=$(PACKAGE_VERSION) ARCH=amd64 \
75+ nfpm pkg --config .nfpm.amd64.yaml \
76+ --packager rpm \
77+ --target $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.${RPM_ARCH}.rpm; \
5978 fi; \
6079 done; \
61- rm -rf $(BINARY_PATH )
6280
6381
64- # Create redhat rpm packages
82+ # Create redhat rpm packages
6583 @for arch in $(REDHAT_ARCHS); do \
6684 goarch=amd64; \
6785 if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
68- GOWORK=off CGO_ENABLED=0 GOARCH=$${goarch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH) $(PROJECT_DIR)/$(PROJECT_FILE); \
6986 for distro in $(REDHAT_VERSIONS); do \
7087 rpm_distro=`echo $$distro | cut -d- -f 1`; \
7188 rpm_major=`echo $$distro | cut -d- -f 2`; \
7289 rpm_codename="el$$rpm_major"; \
73- VERSION=$(PACKAGE_VERSION) ARCH=$${arch} nfpm pkg --config .nfpm.yaml --packager rpm --target $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
90+ VERSION=$(PACKAGE_VERSION) ARCH=$${arch} \
91+ nfpm pkg --config .nfpm.$${goarch}.yaml \
92+ --packager rpm \
93+ --target $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
7494 done; \
75- rm -rf $(BINARY_PATH); \
7695 done; \
7796
7897
79- # Create amazon rpm packages
98+ # Create amazon rpm packages
8099 @for arch in $(AMAZON_ARCHS); do \
81100 goarch=amd64; \
82101 if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
83- GOWORK=off CGO_ENABLED=0 GOARCH=$${goarch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH) $(PROJECT_DIR)/$(PROJECT_FILE); \
84102 for version in $(AMAZON_VERSIONS); do \
85103 rpm_major=`echo $$version | cut -d- -f 2`; \
86104 rpm_codename="amzn$$rpm_major";\
87- VERSION=$(PACKAGE_VERSION) ARCH=$${arch} nfpm pkg --config .nfpm.yaml --packager rpm --target $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
105+ VERSION=$(PACKAGE_VERSION) ARCH=$${arch} \
106+ nfpm pkg --config .nfpm.$$goarch.yaml \
107+ --packager rpm \
108+ --target $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
88109 done; \
89- rm -rf $(BINARY_PATH); \
90110 done; \
91111
92- # Create apk packages
112+ # Create apk packages
93113 @for arch in $(APK_ARCHS); do \
94114 goarch=amd64; \
95115 if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
96- GOWORK=off CGO_ENABLED=0 GOARCH=$${goarch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH) $(PROJECT_DIR)/$(PROJECT_FILE); \
97116 for version in $(APK_VERSIONS); do \
98117 if [ ! -d "$(PACKAGES_DIR)/apk/v$${version}/$${arch}" ]; then mkdir -p $(PACKAGES_DIR)/apk/v$${version}/$${arch}; fi; \
99- VERSION=$(PACKAGE_VERSION) ARCH=$${arch} nfpm pkg --config .nfpm.yaml --packager apk --target $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).apk; \
118+ VERSION=$(PACKAGE_VERSION) ARCH=$${arch} \
119+ nfpm pkg --config .nfpm.$$goarch.yaml \
120+ --packager apk \
121+ --target $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).apk; \
100122 done; \
101- rm -rf $(BINARY_PATH); \
102- done; \
123+ done;
103124
104- # Package build complete
125+ # Package build complete
126+ @echo "DEB packages:"; \
127+ find $(PACKAGES_DIR)/deb -type f | grep -E "${BINARY_NAME}[-_]${PACKAGE_VERSION}" | sort;
128+ @echo "RPM packages:"; \
129+ find $(PACKAGES_DIR)/rpm -type f | grep -E "${BINARY_NAME}[-_]${PACKAGE_VERSION}" | sort;
130+ @echo "APK packages:"; \
131+ find $(PACKAGES_DIR)/apk -type f | grep -E "${BINARY_NAME}[-_]${PACKAGE_VERSION}" | sort;
105132
106- echo "DEB packages:"; \
107- find $(PACKAGES_DIR)/deb ;\
108- echo "RPM packages:"; \
109- find $(PACKAGES_DIR)/rpm ;\
110- echo "APK packages:"; \
111- find $(PACKAGES_DIR)/apk ;\
133+ # Clean up temporary nfpm config files
134+ @for arch in $(DEB_ARCHS); do \
135+ rm -f .nfpm.$$arch.yaml; \
136+ done; \
112137
113- # Create tarball containing all packages
114- cd $(PACKAGES_DIR) && tar -czvf "./$(TARBALL_NAME)" * && cd ../..; \
138+ # Create tarball containing all packages
139+ @echo "Creating tarball: $(TARBALL_NAME)"; \
140+ rm -f $(PACKAGES_DIR)/$(TARBALL_NAME); \
141+ pushd $(PACKAGES_DIR) > /dev/null; \
142+ tar -czvf "./$(TARBALL_NAME)" *; \
143+ popd > /dev/null; \
144+ ls -la $(PACKAGES_DIR)/$(TARBALL_NAME);
115145
116146.PHONY : gpg-key
117147gpg-key : # # Generate GPG public key
0 commit comments