From b837578507e7150e329652646f4139a6a7ccc4b3 Mon Sep 17 00:00:00 2001 From: Donal Hurley Date: Tue, 17 Jan 2023 16:08:16 +0000 Subject: [PATCH 1/7] Fix freebsd package path in release branch workflow (#174) --- .github/workflows/release-branch.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-branch.yml b/.github/workflows/release-branch.yml index b925d3ec2..cbeebe31c 100644 --- a/.github/workflows/release-branch.yml +++ b/.github/workflows/release-branch.yml @@ -158,8 +158,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # clobber overwrites existing assets of the same name run: | - zip -r nginx-agent-{{env.VERSION}}-freebsd-12-amd64.zip ./build/packages/tzx/FreeBSD/12/amd64/ - zip -r nginx-agent-{{env.VERSION}}-freebsd-13-amd64.zip ./build/packages/tzx/FreeBSD/13/amd64/ + zip -r nginx-agent-{{env.VERSION}}-freebsd-12-amd64.zip ./build/packages/tzx/FreeBSD:12:amd64/ + zip -r nginx-agent-{{env.VERSION}}-freebsd-13-amd64.zip ./build/packages/tzx/FreeBSD:13:amd64/ gh release upload --clobber v${{env.VERSION}} \ $(find ./build -type f \( -name "*.deb" -o -name "*.rpm" -o -name "*.zip" -o -name "*.apk" \)) - name: Publish Release Packages From d1bff5147ca7c053133367a1583959447cf1aed1 Mon Sep 17 00:00:00 2001 From: Donal Hurley Date: Tue, 17 Jan 2023 16:41:42 +0000 Subject: [PATCH 2/7] Update FreeBSD package path in release branch workflow (#175) --- .github/workflows/release-branch.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-branch.yml b/.github/workflows/release-branch.yml index cbeebe31c..3619d4662 100644 --- a/.github/workflows/release-branch.yml +++ b/.github/workflows/release-branch.yml @@ -158,8 +158,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # clobber overwrites existing assets of the same name run: | - zip -r nginx-agent-{{env.VERSION}}-freebsd-12-amd64.zip ./build/packages/tzx/FreeBSD:12:amd64/ - zip -r nginx-agent-{{env.VERSION}}-freebsd-13-amd64.zip ./build/packages/tzx/FreeBSD:13:amd64/ + zip -r nginx-agent-{{env.VERSION}}-freebsd-12-amd64.zip ./build/packages/txz/FreeBSD:12:amd64/ + zip -r nginx-agent-{{env.VERSION}}-freebsd-13-amd64.zip ./build/packages/txz/FreeBSD:13:amd64/ gh release upload --clobber v${{env.VERSION}} \ $(find ./build -type f \( -name "*.deb" -o -name "*.rpm" -o -name "*.zip" -o -name "*.apk" \)) - name: Publish Release Packages From a00addd1746cca6a57b181a3570053c9f4569807 Mon Sep 17 00:00:00 2001 From: dhurley Date: Wed, 18 Jan 2023 11:09:28 +0000 Subject: [PATCH 3/7] Create a new directory for packages to be uploaded to github --- .github/workflows/release-branch.yml | 4 +--- Makefile.packaging | 17 ++++++++++++++--- scripts/packages/packager/signed-entrypoint.sh | 2 ++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release-branch.yml b/.github/workflows/release-branch.yml index 3619d4662..36fb5ba53 100644 --- a/.github/workflows/release-branch.yml +++ b/.github/workflows/release-branch.yml @@ -158,10 +158,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # clobber overwrites existing assets of the same name run: | - zip -r nginx-agent-{{env.VERSION}}-freebsd-12-amd64.zip ./build/packages/txz/FreeBSD:12:amd64/ - zip -r nginx-agent-{{env.VERSION}}-freebsd-13-amd64.zip ./build/packages/txz/FreeBSD:13:amd64/ gh release upload --clobber v${{env.VERSION}} \ - $(find ./build -type f \( -name "*.deb" -o -name "*.rpm" -o -name "*.zip" -o -name "*.apk" \)) + $(find ./build/github/packages -type f \( -name "*.deb" -o -name "*.rpm" -o -name "*.pkg" -o -name "*.apk" \)) - name: Publish Release Packages if: ${{ inputs.publishPackages == true }} env: diff --git a/Makefile.packaging b/Makefile.packaging index 9d1da4f39..4d5ca053e 100644 --- a/Makefile.packaging +++ b/Makefile.packaging @@ -1,8 +1,9 @@ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Variable Definitions # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # -PACKAGES_DIR := ./build/packages -GPG_PUBLIC_KEY := .key +PACKAGES_DIR := ./build/packages +GITHUB_PACKAGES_DIR := ./build/github/packages +GPG_PUBLIC_KEY := .key DEB_DISTROS?=ubuntu-jammy-22.04 ubuntu-focal-20.04 ubuntu-bionic-18.04 debian-bullseye-11 debian-buster-10 DEB_ARCHS?=arm64 amd64 @@ -19,11 +20,15 @@ AGENT_UPLOADER_KEY := "./agent-uploader.pem" # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # clean-packages: rm -rf $(PACKAGES_DIR) + rm -rf $(GITHUB_PACKAGES_DIR) $(PACKAGES_DIR): @mkdir -p $(PACKAGES_DIR)/deb && mkdir -p $(PACKAGES_DIR)/rpm && mkdir -p $(PACKAGES_DIR)/apk && mkdir -p $(PACKAGES_DIR)/txz -package: gpg-key $(PACKAGES_DIR) ## Create final packages for all supported distros +$(GITHUB_PACKAGES_DIR): + @mkdir -p $(GITHUB_PACKAGES_DIR) + +package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) ## Create final packages for all supported distros # Create deb packages @for arch in $(DEB_ARCHS); do \ @@ -31,6 +36,7 @@ package: gpg-key $(PACKAGES_DIR) ## Create final packages for all supported dist for distro in $(DEB_DISTROS); do \ deb_codename=`echo $$distro | cut -d- -f 2`; \ VERSION=$(shell echo ${VERSION} | tr -d 'v')~$${deb_codename} ARCH=$${arch} nfpm pkg --config .nfpm.yaml --packager deb --target ${PACKAGES_DIR}/deb/${PACKAGE_PREFIX}_$(shell echo ${VERSION} | tr -d 'v')~$${deb_codename}_$${arch}.deb; \ + cp ${PACKAGES_DIR}/deb/${PACKAGE_PREFIX}_$(shell echo ${VERSION} | tr -d 'v')~$${deb_codename}_$${arch}.deb ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')~$${deb_codename}_$${arch}.deb; \ done; \ rm -rf ./build/nginx-agent; \ done; \ @@ -47,6 +53,7 @@ package: gpg-key $(PACKAGES_DIR) ## Create final packages for all supported dist if [ "$$rpm_distro" = "suse" ]; then rpm_codename="sles$$rpm_major"; fi; \ if [ "$$rpm_codename" != "na" ]; then \ VERSION=$(shell echo ${VERSION} | tr -d 'v') ARCH=amd64 nfpm pkg --config .nfpm.yaml --packager rpm --target $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').$${rpm_codename}.ngx.${UNAME_M}.rpm; \ + cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').$${rpm_codename}.ngx.${UNAME_M}.rpm ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').$${rpm_codename}.ngx.${UNAME_M}.rpm \ fi; \ done; \ rm -rf ./build/nginx-agent @@ -60,6 +67,7 @@ package: gpg-key $(PACKAGES_DIR) ## Create final packages for all supported dist for version in $(APK_VERSIONS); do \ if [ ! -d "$(PACKAGES_DIR)/apk/v$${version}/$${arch}" ]; then mkdir -p $(PACKAGES_DIR)/apk/v$${version}/$${arch}; fi; \ VERSION=$(shell echo ${VERSION} | tr -d 'v') ARCH=$${arch} nfpm pkg --config .nfpm.yaml --packager apk --target $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').apk; \ + cp $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').apk ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-v$${version}-$${arch}.apk done; \ rm -rf ./build/nginx-agent; \ done; \ @@ -70,6 +78,9 @@ package: gpg-key $(PACKAGES_DIR) ## Create final packages for all supported dist @GOWORK=off CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags=${LDFLAGS} -o ./build/nginx-agent docker run -v `pwd`:/nginx-agent/ build-signed-packager:1.0.0 + + zip -r ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-freebsd-12-amd64.zip $(PACKAGES_DIR)/txz/FreeBSD:12:amd64/ + zip -r ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-freebsd-13-amd64.zip $(PACKAGES_DIR)/txz/FreeBSD:13:amd64/ echo "DEB packages:"; \ find $(PACKAGES_DIR)/deb ;\ diff --git a/scripts/packages/packager/signed-entrypoint.sh b/scripts/packages/packager/signed-entrypoint.sh index 6c2d1825d..0e10f295c 100644 --- a/scripts/packages/packager/signed-entrypoint.sh +++ b/scripts/packages/packager/signed-entrypoint.sh @@ -9,6 +9,7 @@ FREEBSD_DISTROS="FreeBSD:12:amd64 FreeBSD:13:amd64" cd /nginx-agent/ mkdir -p ./build/packages/txz +mkdir -p ./build/github/packages mkdir -p staging/usr/local/bin mkdir -p staging/usr/local/etc/nginx-agent @@ -41,6 +42,7 @@ for freebsd_abi in $FREEBSD_DISTROS; do \ cd build/packages/txz/"$freebsd_abi"; \ ln -s nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')".pkg nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')".txz; \ cd ../../../../; \ + cp ./build/packages/txz/"$freebsd_abi"/nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')".pkg ./build/github/packages/; nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')"-"$freebsd_abi".pkg\ done; \ rm -rf /staging From f90bd71e1f5084ff5fb36795d170c635327f61d6 Mon Sep 17 00:00:00 2001 From: dhurley Date: Wed, 18 Jan 2023 11:13:59 +0000 Subject: [PATCH 4/7] Print the list of packages to be uploaded to github --- Makefile.packaging | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile.packaging b/Makefile.packaging index 4d5ca053e..421bff5cc 100644 --- a/Makefile.packaging +++ b/Makefile.packaging @@ -90,6 +90,8 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) ## Create final packages find $(PACKAGES_DIR)/apk ;\ echo "TXZ packages:"; \ find $(PACKAGES_DIR)/txz ;\ + echo "Github packages:"; \ + find $(GITHUB_PACKAGES_DIR) ;\ cd $(PACKAGES_DIR) && tar -czvf "./${PACKAGE_PREFIX}.tar.gz" * && cd ../..; gpg-key: ## Generate GPG public key From 02830d357e02f48e1a3492fcd81da96fa8fe9329 Mon Sep 17 00:00:00 2001 From: dhurley Date: Wed, 18 Jan 2023 11:16:56 +0000 Subject: [PATCH 5/7] Fix makefile syntax error --- Makefile.packaging | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile.packaging b/Makefile.packaging index 421bff5cc..1a77cf57d 100644 --- a/Makefile.packaging +++ b/Makefile.packaging @@ -20,7 +20,7 @@ AGENT_UPLOADER_KEY := "./agent-uploader.pem" # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # clean-packages: rm -rf $(PACKAGES_DIR) - rm -rf $(GITHUB_PACKAGES_DIR) + rm -rf $(GITHUB_PACKAGES_DIR) $(PACKAGES_DIR): @mkdir -p $(PACKAGES_DIR)/deb && mkdir -p $(PACKAGES_DIR)/rpm && mkdir -p $(PACKAGES_DIR)/apk && mkdir -p $(PACKAGES_DIR)/txz @@ -68,7 +68,7 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) ## Create final packages if [ ! -d "$(PACKAGES_DIR)/apk/v$${version}/$${arch}" ]; then mkdir -p $(PACKAGES_DIR)/apk/v$${version}/$${arch}; fi; \ VERSION=$(shell echo ${VERSION} | tr -d 'v') ARCH=$${arch} nfpm pkg --config .nfpm.yaml --packager apk --target $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').apk; \ cp $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').apk ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-v$${version}-$${arch}.apk - done; \ + done; \ rm -rf ./build/nginx-agent; \ done; \ @@ -79,8 +79,8 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) ## Create final packages docker run -v `pwd`:/nginx-agent/ build-signed-packager:1.0.0 - zip -r ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-freebsd-12-amd64.zip $(PACKAGES_DIR)/txz/FreeBSD:12:amd64/ - zip -r ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-freebsd-13-amd64.zip $(PACKAGES_DIR)/txz/FreeBSD:13:amd64/ + zip -r ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-freebsd-12-amd64.zip $(PACKAGES_DIR)/txz/FreeBSD:12:amd64/ + zip -r ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-freebsd-13-amd64.zip $(PACKAGES_DIR)/txz/FreeBSD:13:amd64/ echo "DEB packages:"; \ find $(PACKAGES_DIR)/deb ;\ From 28172037da7c081f3c39e7499dcdcef5172b894b Mon Sep 17 00:00:00 2001 From: dhurley Date: Wed, 18 Jan 2023 11:24:50 +0000 Subject: [PATCH 6/7] Fix Makefile.packaging --- Makefile.packaging | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Makefile.packaging b/Makefile.packaging index 1a77cf57d..92a1b9eea 100644 --- a/Makefile.packaging +++ b/Makefile.packaging @@ -53,7 +53,7 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) ## Create final packages if [ "$$rpm_distro" = "suse" ]; then rpm_codename="sles$$rpm_major"; fi; \ if [ "$$rpm_codename" != "na" ]; then \ VERSION=$(shell echo ${VERSION} | tr -d 'v') ARCH=amd64 nfpm pkg --config .nfpm.yaml --packager rpm --target $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').$${rpm_codename}.ngx.${UNAME_M}.rpm; \ - cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').$${rpm_codename}.ngx.${UNAME_M}.rpm ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').$${rpm_codename}.ngx.${UNAME_M}.rpm \ + cp $(PACKAGES_DIR)/rpm/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').$${rpm_codename}.ngx.${UNAME_M}.rpm ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').$${rpm_codename}.ngx.${UNAME_M}.rpm; \ fi; \ done; \ rm -rf ./build/nginx-agent @@ -67,7 +67,7 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) ## Create final packages for version in $(APK_VERSIONS); do \ if [ ! -d "$(PACKAGES_DIR)/apk/v$${version}/$${arch}" ]; then mkdir -p $(PACKAGES_DIR)/apk/v$${version}/$${arch}; fi; \ VERSION=$(shell echo ${VERSION} | tr -d 'v') ARCH=$${arch} nfpm pkg --config .nfpm.yaml --packager apk --target $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').apk; \ - cp $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').apk ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-v$${version}-$${arch}.apk + cp $(PACKAGES_DIR)/apk/v$${version}/$${arch}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v').apk ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-v$${version}-$${arch}.apk; \ done; \ rm -rf ./build/nginx-agent; \ done; \ @@ -78,9 +78,6 @@ package: gpg-key $(PACKAGES_DIR) $(GITHUB_PACKAGES_DIR) ## Create final packages @GOWORK=off CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags=${LDFLAGS} -o ./build/nginx-agent docker run -v `pwd`:/nginx-agent/ build-signed-packager:1.0.0 - - zip -r ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-freebsd-12-amd64.zip $(PACKAGES_DIR)/txz/FreeBSD:12:amd64/ - zip -r ${GITHUB_PACKAGES_DIR}/${PACKAGE_PREFIX}-$(shell echo ${VERSION} | tr -d 'v')-freebsd-13-amd64.zip $(PACKAGES_DIR)/txz/FreeBSD:13:amd64/ echo "DEB packages:"; \ find $(PACKAGES_DIR)/deb ;\ From 57e9af60cce4fe77699d1b5bbeb4da9db5a0badf Mon Sep 17 00:00:00 2001 From: dhurley Date: Wed, 18 Jan 2023 11:32:18 +0000 Subject: [PATCH 7/7] Fix signed-entrypoint.sh --- scripts/packages/packager/signed-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/packages/packager/signed-entrypoint.sh b/scripts/packages/packager/signed-entrypoint.sh index 0e10f295c..415c64843 100644 --- a/scripts/packages/packager/signed-entrypoint.sh +++ b/scripts/packages/packager/signed-entrypoint.sh @@ -42,7 +42,7 @@ for freebsd_abi in $FREEBSD_DISTROS; do \ cd build/packages/txz/"$freebsd_abi"; \ ln -s nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')".pkg nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')".txz; \ cd ../../../../; \ - cp ./build/packages/txz/"$freebsd_abi"/nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')".pkg ./build/github/packages/; nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')"-"$freebsd_abi".pkg\ + cp ./build/packages/txz/"$freebsd_abi"/nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')".pkg ./build/github/packages/nginx-agent-"$(git describe --match 'v[0-9]*' --abbrev=0 | tr -d 'v')"-"$freebsd_abi".pkg; \ done; \ rm -rf /staging