54 lines
1.5 KiB
Makefile
54 lines
1.5 KiB
Makefile
# Variables
|
|
ROOT_DIR := $(PWD)
|
|
BUILD_TOOL := $(ROOT_DIR)/tools/build
|
|
DISTRO ?= almalinux/el9
|
|
|
|
# Authentication variables (optional)
|
|
# VAULT_ROLE_ID - Use AppRole authentication if set
|
|
# VAULT_ROLE - Kubernetes role for service account authentication (default: rpmbuilder)
|
|
|
|
# Automatically find all packages with metadata.yaml
|
|
PACKAGES := $(shell find $(ROOT_DIR)/rpms -mindepth 1 -maxdepth 1 -type d -exec test -f {}/metadata.yaml \; -print | xargs -n1 basename | sort)
|
|
|
|
# Default target to build all packages
|
|
.PHONY: all list build clean
|
|
all: build-all
|
|
|
|
# List all available packages
|
|
list:
|
|
@echo "Available packages:"
|
|
@for package in $(PACKAGES); do \
|
|
echo " $$package"; \
|
|
done
|
|
|
|
# Build all packages using Python tool
|
|
build-all:
|
|
@echo "Building all packages using Python tooling for distro $(DISTRO)..."
|
|
$(BUILD_TOOL) build-all --distro $(DISTRO)
|
|
|
|
# Build specific package using Python tool
|
|
.PHONY: $(PACKAGES)
|
|
$(PACKAGES):
|
|
@echo "Building package: $@ for distro $(DISTRO)"
|
|
$(BUILD_TOOL) build --distro $(DISTRO) $@
|
|
|
|
# Dry run - show what would be built without building
|
|
dry-run:
|
|
@echo "Dry run - showing what would be built for distro $(DISTRO):"
|
|
$(BUILD_TOOL) build-all --distro $(DISTRO) --dry-run
|
|
|
|
# Clean target
|
|
clean:
|
|
@echo "Cleaning build artifacts..."
|
|
rm -rf $(ROOT_DIR)/dist
|
|
|
|
# Update packages from GitHub releases
|
|
update:
|
|
@echo "Checking for package updates from GitHub releases..."
|
|
$(ROOT_DIR)/tools/update-gh --all
|
|
|
|
# Update specific package from GitHub
|
|
update-%:
|
|
@echo "Checking for updates for package: $*"
|
|
$(ROOT_DIR)/tools/update-gh --package $*
|