Improved the overall implementation of the existing targets in the Makefile file.

This commit is contained in:
Javier Cicchelli 2023-04-27 14:30:20 +02:00
parent ec3c610394
commit 7a0f67713d

View File

@ -8,37 +8,55 @@ export $(shell sed 's/=.*//' $(environment_vars))
# --- ARGUMENTS --- # --- ARGUMENTS ---
override docker?=${CLI_USE_DOCKER}
override tag?=${DOCKER_IMAGE_TAG} override tag?=${DOCKER_IMAGE_TAG}
override platform?=${DOCKER_IMAGE_PLATFORM} override platform?=${DOCKER_IMAGE_PLATFORM}
override config?=${SWIFT_BUILD_CONFIGURATION} override config?=${SWIFT_BUILD_CONFIGURATION}
# --- BUILDING --- # --- DEVELOPMENT ---
build: build-image remove-image ## Build this package against a Swift docker instance. build: ## Build this package with Swift either locally or in a Docker image.
ifeq ($(docker),yes)
build-image: @-docker run \
@docker run \
--rm \ --rm \
--volume ${PWD}:${DOCKER_VOLUME_TARGET} \ --volume ${PWD}:${DOCKER_VOLUME_TARGET} \
--workdir ${DOCKER_VOLUME_TARGET} \ --workdir ${DOCKER_VOLUME_TARGET} \
--platform ${platform} \ --platform ${platform} \
${DOCKER_IMAGE_NAME}:${tag} \ ${DOCKER_IMAGE_NAME}:${tag} \
swift build --configuration ${config} swift build --configuration ${config}
remove-image:
@docker rmi ${DOCKER_IMAGE_NAME}:${tag} @docker rmi ${DOCKER_IMAGE_NAME}:${tag}
else
@swift build --configuration ${config}
endif
# --- HOUSEKEEPING --- # --- TESTING ---
remove-images: ## Remove all outstanding Swift docker images. test: ## Test this package with Swift either locally or in a Docker image.
@docker images --all | grep ${DOCKER_IMAGE_NAME} | awk '{print $$3}' | xargs docker rmi --force 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 @swift package clean
reset: ## Reset the build folder for the package. reset: ## Reset the build folder of the package.
@swift package reset @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 --- # --- HELP ---
# Outputs the documentation for each of the defined tasks when `help` is called. # Outputs the documentation for each of the defined tasks when `help` is called.