From 7a0f67713dfbc164f7eccd9dd0be88b19929af5a Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Thu, 27 Apr 2023 14:30:20 +0200 Subject: [PATCH] Improved the overall implementation of the existing targets in the Makefile file. --- Makefile | 44 +++++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index ef3f514..5ea7cc7 100644 --- a/Makefile +++ b/Makefile @@ -8,37 +8,55 @@ export $(shell sed 's/=.*//' $(environment_vars)) # --- ARGUMENTS --- +override docker?=${CLI_USE_DOCKER} override tag?=${DOCKER_IMAGE_TAG} override platform?=${DOCKER_IMAGE_PLATFORM} override config?=${SWIFT_BUILD_CONFIGURATION} -# --- BUILDING --- +# --- DEVELOPMENT --- -build: build-image remove-image ## Build this package against a Swift docker instance. - -build-image: - @docker run \ +build: ## Build this package with Swift either locally or in a Docker image. +ifeq ($(docker),yes) + @-docker run \ --rm \ --volume ${PWD}:${DOCKER_VOLUME_TARGET} \ --workdir ${DOCKER_VOLUME_TARGET} \ --platform ${platform} \ ${DOCKER_IMAGE_NAME}:${tag} \ swift build --configuration ${config} - -remove-image: @docker rmi ${DOCKER_IMAGE_NAME}:${tag} +else + @swift build --configuration ${config} +endif -# --- HOUSEKEEPING --- +# --- TESTING --- -remove-images: ## Remove all outstanding Swift docker images. - @docker images --all | grep ${DOCKER_IMAGE_NAME} | awk '{print $$3}' | xargs docker rmi --force +test: ## Test this package with Swift either locally or in a Docker image. +ifeq ($(docker),yes) + @-docker run \ + --rm \ + --volume ${PWD}:${DOCKER_VOLUME_TARGET} \ + --workdir ${DOCKER_VOLUME_TARGET} \ + --platform ${platform} \ + ${DOCKER_IMAGE_NAME}:${tag} \ + swift test --parallel + @docker rmi ${DOCKER_IMAGE_NAME}:${tag} +else + @swift test --parallel +endif -clean: ## Clean the build artifacts for the package. +# --- HOUSE-KEEPING --- + +clean: ## Clean the build artifacts of the package. @swift package clean -reset: ## Reset the build folder for the package. +reset: ## Reset the build folder of the package. @swift package reset +flush-images: ## Flush all outstanding Swift docker images. + @docker images \ + --all | grep ${DOCKER_IMAGE_NAME} | awk '{print $$3}' | xargs docker rmi --force + # --- HELP --- # Outputs the documentation for each of the defined tasks when `help` is called. @@ -48,4 +66,4 @@ reset: ## Reset the build folder for the package. help: ## Prints the written documentation for all the defined tasks. @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) -.DEFAULT_GOAL := help \ No newline at end of file +.DEFAULT_GOAL := help