- add makefile for all builds - add .gitignore - add terragrunt dockerfile/nfpm
46 lines
1.6 KiB
Makefile
46 lines
1.6 KiB
Makefile
# Variables
|
|
ROOT_DIR := $(PWD)
|
|
RPMS_DIR := $(ROOT_DIR)/rpms
|
|
NFPM_VERSION := 2.41.1
|
|
|
|
# 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
|
|
all: $(PACKAGES)
|
|
|
|
# Build specific package/version
|
|
.PHONY: $(PACKAGES)
|
|
$(PACKAGES):
|
|
@PACKAGE_NAME=$(shell echo $(@) | cut -d/ -f1) && \
|
|
PACKAGE_VERSION=$(shell echo $(@) | cut -d/ -f2) && \
|
|
echo "Building RPM for $$PACKAGE_NAME version $$PACKAGE_VERSION" && \
|
|
$(MAKE) build PACKAGE_NAME=$$PACKAGE_NAME PACKAGE_VERSION=$$PACKAGE_VERSION
|
|
|
|
# Build target
|
|
.PHONY: build
|
|
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) && \
|
|
echo "Using PACKAGE_RELEASE=$${PACKAGE_RELEASE}" && \
|
|
docker build \
|
|
--build-arg NFPM_VERSION=$(NFPM_VERSION) \
|
|
--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
|
|
|
|
# Clean target
|
|
.PHONY: clean
|
|
clean:
|
|
@echo "Cleaning build artifacts..."
|
|
rm -rf $(ROOT_DIR)/dist
|