@@ -9,23 +9,18 @@ AZURE_PACKAGES_DIR := ./build/azure/packages
9
9
BINARY_PATH := $(BUILD_DIR ) /$(BINARY_NAME )
10
10
GPG_PUBLIC_KEY := .key
11
11
PACKAGE_BUILD ?= 1
12
- PACKAGE_VERSION := $(shell echo ${VERSION} | tr -d 'v' )
12
+ PACKAGE_VERSION := $(shell git describe --match "v[0-9] * " --abbrev=0 --tags )
13
13
TARBALL_NAME := $(PACKAGE_PREFIX ) .tar.gz
14
14
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
16
16
DEB_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
18
18
RPM_ARCH := x86_64
19
- REDHAT_VERSIONS ?= redhatenterprise-8 redhatenterprise-9
19
+ REDHAT_VERSIONS ?= redhatenterprise-8 redhatenterprise-9 redhatenterprise-10
20
20
REDHAT_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"
24
21
APK_VERSIONS ?= 3.18 3.19 3.20 3.21 3.22
25
22
APK_ARCHS ?= aarch64 x86_64
26
23
APK_REVISION ?= 1
27
- ALMA_VERSIONS ?= almalinux-8 almalinux-9
28
- ALMA_ARCHS ?= aarch64 x86_64
29
24
AMAZON_VERSIONS ?= amazon-2 amazon-2023
30
25
AMAZON_ARCHS ?= aarch64 x86_64
31
26
@@ -35,55 +30,38 @@ AMAZON_ARCHS ?= aarch64 x86_64
35
30
.PHONY : clean-packages
36
31
clean-packages :
37
32
rm -rf $(PACKAGES_DIR )
38
- rm -rf $(GITHUB_PACKAGES_DIR )
39
- rm -rf $(AZURE_PACKAGES_DIR )
40
33
41
34
$(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
49
36
50
37
.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
52
39
# Create deb packages
53
-
54
40
@for arch in $(DEB_ARCHS ) ; do \
55
41
GOWORK=off CGO_ENABLED=0 GOARCH=$$ {arch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH ) $(PROJECT_DIR ) /$(PROJECT_FILE ) ; \
56
42
for distro in $( DEB_DISTROS) ; do \
57
43
deb_codename=` echo $$ distro | cut -d- -f 2` ; \
58
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; \
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; \
61
45
done ; \
62
46
rm -rf $(BINARY_PATH ) ; \
63
47
done ; \
64
48
65
49
# Create rpm packages
66
-
67
50
@GOWORK=off CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH ) $(PROJECT_DIR ) /$(PROJECT_FILE )
68
51
@for distro in $(RPM_DISTROS ) ; do \
69
52
rpm_distro=` echo $$ distro | cut -d- -f 1` ; \
70
53
rpm_major=` echo $$ distro | cut -d- -f 2` ; \
71
54
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" ; \
75
56
fi ; \
76
57
if [ " $$ rpm_codename" != " na" ]; then \
77
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; \
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; \
80
59
fi ; \
81
60
done ; \
82
61
rm -rf $(BINARY_PATH )
83
62
84
63
85
64
# Create redhat rpm packages
86
-
87
65
@for arch in $(REDHAT_ARCHS); do \
88
66
goarch=amd64; \
89
67
if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
@@ -93,49 +71,12 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) $(AZURE_PACKAGES_DIR) ##
93
71
rpm_major=`echo $$distro | cut -d- -f 2`; \
94
72
rpm_codename="el$$rpm_major"; \
95
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; \
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; \
98
74
done; \
99
75
rm -rf $(BINARY_PATH); \
100
76
done; \
101
77
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; \
138
78
79
+ # Create amazon rpm packages
139
80
@for arch in $(AMAZON_ARCHS); do \
140
81
goarch=amd64; \
141
82
if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
@@ -144,34 +85,22 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) $(AZURE_PACKAGES_DIR) ##
144
85
rpm_major=`echo $$version | cut -d- -f 2`; \
145
86
rpm_codename="amzn$$rpm_major";\
146
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; \
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; \
149
88
done; \
150
89
rm -rf $(BINARY_PATH); \
151
90
done; \
152
91
153
92
# Create apk packages
154
-
155
93
@for arch in $(APK_ARCHS); do \
156
94
goarch=amd64; \
157
95
if [ "$$arch" = "aarch64" ]; then goarch="arm64"; fi; \
158
96
GOWORK=off CGO_ENABLED=0 GOARCH=$${goarch} GOOS=linux go build -pgo=auto -ldflags=${LDFLAGS} -o $(BINARY_PATH) $(PROJECT_DIR)/$(PROJECT_FILE); \
159
97
for version in $(APK_VERSIONS); do \
160
98
if [ ! -d "$(PACKAGES_DIR)/apk/v$${version}/$${arch}" ]; then mkdir -p $(PACKAGES_DIR)/apk/v$${version}/$${arch}; fi; \
161
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; \
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; \
164
100
done; \
165
101
rm -rf $(BINARY_PATH); \
166
102
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
+
175
104
# Package build complete
176
105
177
106
echo "DEB packages:"; \
@@ -180,17 +109,9 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) $(AZURE_PACKAGES_DIR) ##
180
109
find $(PACKAGES_DIR)/rpm ;\
181
110
echo "APK packages:"; \
182
111
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) ;
190
112
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)"; \
194
115
195
116
.PHONY : gpg-key
196
117
gpg-key : # # Generate GPG public key
0 commit comments