From f1e1973d0e0cab2435aa658089629adda8da37a2 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Sun, 1 Dec 2024 01:09:27 +1100 Subject: [PATCH 1/3] feat: only build packages that dont exist - check the rpm repo to confirm if a package already exists --- Makefile | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 18fe99c..3f8c980 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,23 @@ # Variables ROOT_DIR := $(PWD) RPMS_DIR := $(ROOT_DIR)/rpms +REPO_OPTIONS := --disablerepo=* --enablerepo=unkin # Automatically find all package/version directories PACKAGES := $(shell find $(RPMS_DIR) -mindepth 2 -maxdepth 2 -type d | sed "s|$(RPMS_DIR)/||") # Default target to build all packages and versions -.PHONY: all list build buildall clean -all: $(PACKAGES) +.PHONY: all list cache build clean +all: cache $(PACKAGES) list: @echo "$(PACKAGES)" +cache: + echo "Refreshing DNF cache..." && \ + dnf clean all && \ + dnf makecache + # Build specific package/version .PHONY: $(PACKAGES) $(PACKAGES): @@ -26,17 +32,22 @@ build: @echo "Preparing to build $(PACKAGE_NAME) version $(PACKAGE_VERSION)" @cd $(RPMS_DIR)/$(PACKAGE_NAME) && \ export PACKAGE_RELEASE=$$(cat $(PACKAGE_VERSION)/release) && \ - echo "Using PACKAGE_RELEASE=$${PACKAGE_RELEASE}" && \ - docker build \ - --build-arg PACKAGE_VERSION=$(PACKAGE_VERSION) \ - --build-arg PACKAGE_RELEASE=$${PACKAGE_RELEASE} \ - -t $$(echo $(PACKAGE_NAME)-builder \ - | tr '[:upper:]' '[:lower:]') . && \ - docker create --name $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder \ - $$(echo $(PACKAGE_NAME)-builder | tr '[:upper:]' '[:lower:]') && \ - docker start -a $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder && \ - docker cp $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder:/app/dist/. $(ROOT_DIR)/dist/$(PACKAGE_NAME)/ && \ - docker rm $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder + export PACKAGE_FULL_NAME=$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$$PACKAGE_RELEASE && \ + if dnf info $$PACKAGE_FULL_NAME $(REPO_OPTIONS) > /dev/null 2>&1; then \ + echo "Skipping build for $(PACKAGE_NAME) version $(PACKAGE_VERSION) (already exists in the repository)"; \ + else \ + echo "Building RPM for $(PACKAGE_NAME) version $(PACKAGE_VERSION)"; \ + docker build \ + --build-arg PACKAGE_VERSION=$(PACKAGE_VERSION) \ + --build-arg PACKAGE_RELEASE=$${PACKAGE_RELEASE} \ + -t $$(echo $(PACKAGE_NAME)-builder \ + | tr '[:upper:]' '[:lower:]') . && \ + docker create --name $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder \ + $$(echo $(PACKAGE_NAME)-builder | tr '[:upper:]' '[:lower:]') && \ + docker start -a $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder && \ + docker cp $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder:/app/dist/. $(ROOT_DIR)/dist/$(PACKAGE_NAME)/ && \ + docker rm $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder; \ + fi # Clean target clean: From 9b9161048a3395fb98a62a535daac4e5c4801758 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Sun, 1 Dec 2024 01:22:13 +1100 Subject: [PATCH 2/3] feat: add terragrunt/0.69.3 --- rpms/terragrunt/0.69.3/release | 1 + 1 file changed, 1 insertion(+) create mode 100644 rpms/terragrunt/0.69.3/release diff --git a/rpms/terragrunt/0.69.3/release b/rpms/terragrunt/0.69.3/release new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/rpms/terragrunt/0.69.3/release @@ -0,0 +1 @@ +1 From 94310443514e0deebc70ed874e883b5e23b8c8c2 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Sun, 1 Dec 2024 01:26:45 +1100 Subject: [PATCH 3/3] feat: updated comments in build job --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3f8c980..820f586 100644 --- a/Makefile +++ b/Makefile @@ -23,16 +23,16 @@ cache: $(PACKAGES): @PACKAGE_NAME=$(shell echo $(@) | cut -d/ -f1) && \ PACKAGE_VERSION=$(shell echo $(@) | cut -d/ -f2) && \ - echo "Building RPM for $$PACKAGE_NAME version $$PACKAGE_VERSION" && \ + echo "Starting build $$PACKAGE_NAME/$$PACKAGE_VERSION" && \ $(MAKE) build PACKAGE_NAME=$$PACKAGE_NAME PACKAGE_VERSION=$$PACKAGE_VERSION # Build target build: @mkdir -p $(ROOT_DIR)/dist/$(PACKAGE_NAME)/ - @echo "Preparing to build $(PACKAGE_NAME) version $(PACKAGE_VERSION)" @cd $(RPMS_DIR)/$(PACKAGE_NAME) && \ export PACKAGE_RELEASE=$$(cat $(PACKAGE_VERSION)/release) && \ export PACKAGE_FULL_NAME=$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$$PACKAGE_RELEASE && \ + echo "Checking repos for $$PACKAGE_FULL_NAME" && \ if dnf info $$PACKAGE_FULL_NAME $(REPO_OPTIONS) > /dev/null 2>&1; then \ echo "Skipping build for $(PACKAGE_NAME) version $(PACKAGE_VERSION) (already exists in the repository)"; \ else \