@@ -9,23 +9,18 @@ AZURE_PACKAGES_DIR := ./build/azure/packages
99BINARY_PATH := $(BUILD_DIR ) /$(BINARY_NAME )
1010GPG_PUBLIC_KEY := .key
1111PACKAGE_BUILD ?= 1
12- PACKAGE_VERSION := $(shell echo ${VERSION} | tr -d 'v' )
12+ PACKAGE_VERSION := $(shell git describe --match "v[0-9] * " --abbrev=0 --tags )
1313TARBALL_NAME := $(PACKAGE_PREFIX ) .tar.gz
1414
15- DEB_DISTROS ?= ubuntu-noble-24.04 ubuntu-jammy-22.04 ubuntu-focal-20.04 debian-bookworm-12 debian-bullseye-11
15+ DEB_DISTROS ?= ubuntu-plucky-25.04 ubuntu- noble-24.04 ubuntu-jammy-22.04 ubuntu-focal-20.04 debian-bookworm-12 debian-bullseye-11
1616DEB_ARCHS ?= arm64 amd64
17- RPM_DISTROS ?= oraclelinux-8-x86_64 oraclelinux-9-x86_64 suse-15-x86_64
17+ RPM_DISTROS ?= suse-15-x86_64
1818RPM_ARCH := x86_64
19- REDHAT_VERSIONS ?= redhatenterprise-8 redhatenterprise-9
19+ REDHAT_VERSIONS ?= redhatenterprise-8 redhatenterprise-9 redhatenterprise-10
2020REDHAT_ARCHS ?= aarch64 x86_64
21- ROCKY_VERSIONS ?= rocky-8 rocky-9
22- ROCKY_ARCHS ?= aarch64 x86_64
23- FREEBSD_DISTROS ?= "FreeBSD:13:amd64" "FreeBSD:14:amd64"
2421APK_VERSIONS ?= 3.18 3.19 3.20 3.21 3.22
2522APK_ARCHS ?= aarch64 x86_64
2623APK_REVISION ?= 1
27- ALMA_VERSIONS ?= almalinux-8 almalinux-9
28- ALMA_ARCHS ?= aarch64 x86_64
2924AMAZON_VERSIONS ?= amazon-2 amazon-2023
3025AMAZON_ARCHS ?= aarch64 x86_64
3126
@@ -35,55 +30,38 @@ AMAZON_ARCHS ?= aarch64 x86_64
3530.PHONY : clean-packages
3631clean-packages :
3732 rm -rf $(PACKAGES_DIR )
38- rm -rf $(GITHUB_PACKAGES_DIR )
39- rm -rf $(AZURE_PACKAGES_DIR )
4033
4134$(PACKAGES_DIR ) :
42- @mkdir -p $(PACKAGES_DIR ) /deb && mkdir -p $(PACKAGES_DIR ) /rpm && mkdir -p $(PACKAGES_DIR ) /apk && mkdir -p $(PACKAGES_DIR ) /txz
43-
44- $(GITHUB_PACKAGES_DIR ) :
45- @mkdir -p $(GITHUB_PACKAGES_DIR )
46-
47- $(AZURE_PACKAGES_DIR ) :
48- @mkdir -p $(AZURE_PACKAGES_DIR )
35+ @mkdir -p $(PACKAGES_DIR ) /deb && mkdir -p $(PACKAGES_DIR ) /rpm && mkdir -p $(PACKAGES_DIR ) /apk
4936
5037.PHONY : package
51- package : gpg-key $(PACKAGES_DIR ) $( GITHUB_PACKAGES_DIR ) $( AZURE_PACKAGES_DIR ) # ### Create final packages for all supported distros
38+ package : $(PACKAGES_DIR ) # ### Create final packages for all supported distros
5239 # Create deb packages
53-
5440 @for arch in $(DEB_ARCHS ) ; do \
5541 GOWORK=off CGO_ENABLED=0 GOARCH=$$ {arch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH ) $(PROJECT_DIR ) /$(PROJECT_FILE ) ; \
5642 for distro in $( DEB_DISTROS) ; do \
5743 deb_codename=` echo $$ distro | cut -d- -f 2` ; \
5844 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; \
59- cp ${PACKAGES_DIR} /deb/${PACKAGE_PREFIX} _$(PACKAGE_VERSION ) ~$$ {deb_codename}_$$ {arch}.deb ${GITHUB_PACKAGES_DIR} /${PACKAGE_PREFIX} -$(PACKAGE_VERSION ) ~$$ {deb_codename}_$$ {arch}.deb; \
60- cp ${PACKAGES_DIR} /deb/${PACKAGE_PREFIX} _$(PACKAGE_VERSION ) ~$$ {deb_codename}_$$ {arch}.deb ${AZURE_PACKAGES_DIR} /${PACKAGE_PREFIX} -$(PACKAGE_VERSION ) ~$$ {deb_codename}_$$ {arch}.deb; \
6145 done ; \
6246 rm -rf $(BINARY_PATH ) ; \
6347 done ; \
6448
6549 # Create rpm packages
66-
6750 @GOWORK=off CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH ) $(PROJECT_DIR ) /$(PROJECT_FILE )
6851 @for distro in $(RPM_DISTROS ) ; do \
6952 rpm_distro=` echo $$ distro | cut -d- -f 1` ; \
7053 rpm_major=` echo $$ distro | cut -d- -f 2` ; \
7154 rpm_codename=' na' ; \
72- if [ "$$rpm_distro" = "centos" ] || [ "$$rpm_distro" = "redhatenterprise" ]; then rpm_codename="el$$rpm_major"; \
73- elif [ "$$rpm_distro" = "oraclelinux" ]; then rpm_codename="oraclelinux$$rpm_major"; \
74- elif [ "$$rpm_distro" = "suse" ]; then rpm_codename="sles$$rpm_major"; \
55+ if [ " $$ rpm_distro" = " suse" ]; then rpm_codename=" sles$$ rpm_major" ; \
7556 fi ; \
7657 if [ " $$ rpm_codename" != " na" ]; then \
7758 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; \
78- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$(RPM_ARCH).rpm ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.${RPM_ARCH}.rpm; \
79- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$(RPM_ARCH).rpm ${AZURE_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.${RPM_ARCH}.rpm; \
8059 fi ; \
8160 done ; \
8261 rm -rf $(BINARY_PATH )
8362
8463
8564 # Create redhat rpm packages
86-
8765 @for arch in $(REDHAT_ARCHS); do \
8866 goarch=amd64; \
8967 if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
@@ -93,49 +71,12 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) $(AZURE_PACKAGES_DIR) ##
9371 rpm_major=`echo $$distro | cut -d- -f 2`; \
9472 rpm_codename="el$$rpm_major"; \
9573 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; \
96- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
97- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm ${AZURE_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
9874 done; \
9975 rm -rf $(BINARY_PATH); \
10076 done; \
10177
102- # Create almalinux rpm packages
103-
104- @for arch in $(ALMA_ARCHS); do \
105- goarch=amd64; \
106- if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
107- GOWORK=off CGO_ENABLED=0 GOARCH=$${goarch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH) $(PROJECT_DIR)/$(PROJECT_FILE); \
108- for distro in $(ALMA_VERSIONS); do \
109- rpm_distro=`echo $$distro | cut -d- -f 1`; \
110- rpm_major=`echo $$distro | cut -d- -f 2`; \
111- rpm_codename="almalinux$$rpm_major"; \
112- 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; \
113- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
114- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm ${AZURE_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
115- done; \
116- rm -rf $(BINARY_PATH); \
117- done; \
118-
119- # Create rocky rpm packages
120-
121- @for arch in $(ROCKY_ARCHS); do \
122- goarch=amd64; \
123- if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
124- GOWORK=off CGO_ENABLED=0 GOARCH=$${goarch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH) $(PROJECT_DIR)/$(PROJECT_FILE); \
125- for distro in $(ROCKY_VERSIONS); do \
126- rpm_distro=`echo $$distro | cut -d- -f 1`; \
127- rpm_major=`echo $$distro | cut -d- -f 2`; \
128- rpm_codename='na'; \
129- if [ "$$rpm_distro" = "rocky" ]; then rpm_codename="rocky$$rpm_major"; fi; \
130- if [ "$$rpm_codename" != "na" ]; then \
131- 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; \
132- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
133- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm ${AZURE_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
134- fi; \
135- done; \
136- rm -rf $(BINARY_PATH); \
137- done; \
13878
79+ # Create amazon rpm packages
13980 @for arch in $(AMAZON_ARCHS); do \
14081 goarch=amd64; \
14182 if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
@@ -144,34 +85,22 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) $(AZURE_PACKAGES_DIR) ##
14485 rpm_major=`echo $$version | cut -d- -f 2`; \
14586 rpm_codename="amzn$$rpm_major";\
14687 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; \
147- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
148- cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm ${AZURE_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).$${rpm_codename}.ngx.$${arch}.rpm; \
14988 done; \
15089 rm -rf $(BINARY_PATH); \
15190 done; \
15291
15392 # Create apk packages
154-
15593 @for arch in $(APK_ARCHS); do \
15694 goarch=amd64; \
15795 if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
15896 GOWORK=off CGO_ENABLED=0 GOARCH=$${goarch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH) $(PROJECT_DIR)/$(PROJECT_FILE); \
15997 for version in $(APK_VERSIONS); do \
16098 if [ ! -d "$(PACKAGES_DIR)/apk/v$${version}/$${arch}" ]; then mkdir -p $(PACKAGES_DIR)/apk/v$${version}/$${arch}; fi; \
16199 VERSION=$(PACKAGE_VERSION) ARCH=$${arch} nfpm pkg --config .nfpm.yaml --packager apk --target $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).apk; \
162- cp $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).apk ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-v$(PACKAGE_VERSION)-r$(APK_REVISION).apk; \
163- cp $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(PACKAGE_VERSION).apk ${AZURE_PACKAGES_DIR}/${PACKAGE_PREFIX}-v$(PACKAGE_VERSION)-r$(APK_REVISION).apk; \
164100 done; \
165101 rm -rf $(BINARY_PATH); \
166102 done; \
167-
168- # Create txz packages
169-
170- rm -rf $(BINARY_PATH)
171- @GOWORK=off CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH) $(PROJECT_DIR)/$(PROJECT_FILE)
172-
173- docker run -v ${PWD}:/nginx-agent/ -e VERSION=$(PACKAGE_VERSION) build-signed-packager:1.0.0
174-
103+
175104 # Package build complete
176105
177106 echo "DEB packages:"; \
@@ -180,17 +109,9 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) $(AZURE_PACKAGES_DIR) ##
180109 find $(PACKAGES_DIR)/rpm ;\
181110 echo "APK packages:"; \
182111 find $(PACKAGES_DIR)/apk ;\
183- echo "TXZ packages:"; \
184- find $(PACKAGES_DIR)/txz ;\
185- echo "Github packages:"; \
186- find $(GITHUB_PACKAGES_DIR) ;\
187- cd $(PACKAGES_DIR) && tar -czvf "./$(TARBALL_NAME)" * && cd ../.. && cp "${PACKAGES_DIR}/$(TARBALL_NAME)" "${AZURE_PACKAGES_DIR}/$(TARBALL_NAME)"; \
188- echo "Azure packages:"; \
189- find $(AZURE_PACKAGES_DIR) ;
190112
191- .PHONY : build-signed-packager
192- build-signed-packager :
193- docker build -f scripts/packages/packager/Dockerfile --build-arg package_type=signed-package -t build-signed-packager:1.0.0 .
113+ # Create tarball containing all packages
114+ cd $(PACKAGES_DIR) && tar -czvf "./$(TARBALL_NAME)" * && cd ../.. && cp "${PACKAGES_DIR}/$(TARBALL_NAME)"; \
194115
195116.PHONY : gpg-key
196117gpg-key : # # Generate GPG public key
0 commit comments