From 0e579c19da3f6d949f4148fc112a98dfa16493c9 Mon Sep 17 00:00:00 2001 From: Paulo Truta Date: Wed, 4 Dec 2024 15:00:23 +0100 Subject: [PATCH] Improved Makefile with info and install + build processes --- Makefile | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 1e646b3..5202284 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,15 @@ GOARCH := $(shell go env GOARCH) build-all: - GOOS=linux GOARCH=amd64 make build - GOOS=linux GOARCH=arm make build + @echo "\n๐Ÿ—๏ธ Building all architectures and release modes" + @echo "๐ŸŸก This will build all supported architectures and release combinations. It can take a while...\n" + + GOARCH=amd64 make build + GOARCH=arm make build + RELEASE=prod make build + RELEASE=cloud make build + + @echo "\n๐ŸŸข All builds completed and available at ./bin/ \n" build-prod: GOOS=linux GOARCH=arm RELEASE=prod make build @@ -30,17 +37,25 @@ build-amd64: build: - @echo "Building ${GOOS}-${GOARCH}" + @echo "\n๐Ÿ—๏ธ Building edgeboxctl (${RELEASE} release) on ${GOOS} (${GOARCH})" + @echo "๐Ÿ“ฆ Binary will be saved in ./${BUILD_DIR}/edgeboxctl-${GOOS}-${GOARCH}\n" + GOOS=${GOOS} GOARCH=${GOARCH} go build \ -trimpath -ldflags "-s -w -X ${PROJECT}/internal/diagnostics.Version=${RELEASE} \ -X ${PROJECT}/internal/diagnostics.Commit=${COMMIT} \ -X ${PROJECT}/internal/diagnostics.BuildDate=${BUILD_DATE}" \ -o bin/edgeboxctl-${GOOS}-${GOARCH} ${PROJECT}/cmd/edgeboxctl + @echo "\n๐ŸŸข Build task completed\n" + clean: + @echo "๐Ÿงน Cleaning build directory and go cache\n" + rm -rf ${BUILD_DIR} go clean + @echo "\n๐ŸŸข Clean task completed\n" + test: go test -tags=unit -timeout=600s -v ./... @@ -48,14 +63,24 @@ test-with-coverage: go test -tags=unit -timeout=600s -v ./... -coverprofile=coverage.out install: + @echo "๐Ÿ“ฆ Installing edgeboxctl service (${RELEASE}) for ${GOOS} (${GOARCH})\n" + + @echo "๐Ÿšง Stopping edgeboxctl service if it is running" sudo systemctl stop edgeboxctl || true + + @echo "\n๐Ÿ—‘๏ธ Removing old edgeboxctl binary and service" sudo rm -rf /usr/local/bin/edgeboxctl /usr/local/sbin/edgeboctl /lib/systemd/system/edgeboxctl.service + + @echo "\n๐Ÿšš Copying edgeboxctl binary to /usr/local/bin" sudo cp ./bin/edgeboxctl-${GOOS}-${GOARCH} /usr/local/bin/edgeboxctl sudo cp ./bin/edgeboxctl-${GOOS}-${GOARCH} /usr/local/sbin/edgeboxctl + + @echo "\n๐Ÿšš Copying edgeboxctl service to /lib/systemd/system" sudo cp ./edgeboxctl.service /lib/systemd/system/edgeboxctl.service sudo systemctl daemon-reload - @echo "Edgeboxctl installed successfully" - @echo "To start edgeboxctl run: systemctl start edgeboxctl" + + @echo "\n ๐Ÿš€ To start edgeboxctl run: make start" + @echo "๐ŸŸข Edgeboxctl installed successfully\n" install-prod: build-prod install install-cloud: build-cloud install @@ -64,13 +89,24 @@ install-armhf: build-armhf install install-amd64: build-amd64 install start: + @echo "\n ๐Ÿš€ Starting edgeboxctl service\n" systemctl start edgeboxctl + @echo "\n ๐ŸŸข Edgebox service started\n" stop: + @echo "\nโœ‹ Stopping edgeboxctl service\n" systemctl stop edgeboxctl + @echo "\n ๐ŸŸข Edgebox service stopped\n" + +restart: + @echo "\n๐Ÿ’ซ Restarting edgeboxctl service\n" + systemctl restart edgeboxctl + @echo "\n ๐ŸŸข Edgebox service restarted\n" status: + @echo "\nโ„น๏ธ edgeboxctl Service Info:\n" systemctl status edgeboxctl -log: start +log: + @echo "\n๐Ÿ“ฐ edgeboxctl service logs:\n" journalctl -fu edgeboxctl