Skip to content

Commit ccfa42d

Browse files
committed
Merge branch 'main' into workflow-release-updater
2 parents 072384e + 6bf4d3d commit ccfa42d

File tree

6 files changed

+64
-186
lines changed

6 files changed

+64
-186
lines changed

.github/workflows/release-branch.yml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -228,22 +228,6 @@ jobs:
228228
export PATH=$PATH:~/go/bin
229229
nfpm --version
230230
231-
- name: Docker Buildx
232-
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
233-
234-
- name: Build Docker Image
235-
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
236-
with:
237-
file: scripts/packages/packager/Dockerfile
238-
tags: build-signed-packager:1.0.0
239-
context: '.'
240-
push: false
241-
load: true
242-
cache-from: type=gha,scope=build-signed-packager
243-
cache-to: type=gha,scope=build-signed-packager,mode=max
244-
build-args: |
245-
package_type=signed-package
246-
247231
- name: Set the VERSION environment variable
248232
run: echo VERSION=v${{ inputs.packageVersion }} >> $GITHUB_ENV
249233

.nfpm.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
# this is the base "template" for the package
22
name: nginx-agent
33
description: NGINX Agent
4-
arch: ${ARCH}
4+
arch: ^ARCH^ # substituted in Makefile.packaging
55
version: ${VERSION}
66
priority: optional
77
vendor: NGINX Software, Inc.
88
maintainer: NGINX Inc. <agent@nginx.org>
99
homepage: https://github.com/nginx/agent
1010
license: Apache 2.0
1111
contents:
12-
- src: ./build/nginx-agent
12+
- src: ^BUILD_PATH^/nginx-agent # substituted in Makefile.packaging
1313
dst: /usr/bin/nginx-agent
1414
- src: nginx-agent.conf
1515
dst: /etc/nginx-agent/nginx-agent.conf

Makefile.packaging

Lines changed: 62 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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
117147
gpg-key: ## Generate GPG public key

scripts/packages/packager/Dockerfile

Lines changed: 0 additions & 28 deletions
This file was deleted.

scripts/packages/packager/local-entrypoint.sh

Lines changed: 0 additions & 51 deletions
This file was deleted.

scripts/packages/packager/signed-entrypoint.sh

Lines changed: 0 additions & 57 deletions
This file was deleted.

0 commit comments

Comments
 (0)