This is an automated email from the ASF dual-hosted git repository.
liuhan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-go.git
The following commit(s) were added to refs/heads/main by this push:
new a3ad846 chore: enhance makefile (#180)
a3ad846 is described below
commit a3ad84632b770d015d5fa2b69d8ddd8ff0efa121
Author: Shyunn <[email protected]>
AuthorDate: Fri Apr 12 16:46:03 2024 +0800
chore: enhance makefile (#180)
---
CHANGES.md | 3 +++
Makefile | 32 ++++++++++++++++++++++++++------
2 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index 11de5e2..0e664f1 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -12,6 +12,9 @@ Release Notes.
* Support [Segmentio-Kafka](https://github.com/segmentio/kafka-go) MQ.
* Support http headers collection for Gin
+#### Chore
+* Enhance the observability of makefile execution
+
0.4.0
------------------
#### Features
diff --git a/Makefile b/Makefile
index c0368b0..74c9150 100644
--- a/Makefile
+++ b/Makefile
@@ -35,14 +35,26 @@ HUB ?= docker.io/apache
PROJECT ?= skywalking-go
VERSION ?= $(shell git rev-parse --short HEAD)
+LOG_TARGET = echo -e "\033[0;32m===========> Running $@ ... \033[0m"
+
+##@ General
+
+.PHONY: help
+help: ## Display this help.
+ @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make
\033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf "
\033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n",
substr($$0, 5) } ' $(MAKEFILE_LIST)
+
deps:
$(GO_GET) -v -t -d ./...
linter:
$(GO_LINT) version || curl -sfL
https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh
-s -- -b $(GO_PATH)/bin v1.50.0
+
+##@ Golang
+
.PHONY: test
-test:
+test: ## Run E2E scenario tests
+ @$(LOG_TARGET)
echo "mode: atomic" > ${REPODIR}/coverage.txt;
@for dir in $$(find . -name go.mod -exec dirname {} \; ); do \
if [[ $$dir == "./test/plugins/scenarios/"* ]]; then \
@@ -64,7 +76,8 @@ test:
done
.PHONY: lint
-lint: linter
+lint: linter ## Run golangci-lint linter
+ @$(LOG_TARGET)
@for dir in $$(find . -name go.mod -exec dirname {} \; ); do \
if [[ $$dir == "./test/plugins/scenarios/"* ]]; then \
continue; \
@@ -78,7 +91,8 @@ lint: linter
$(GO_LINT) run -v --timeout 5m ./...
.PHONY: check
-check:
+check: ## Run consistency checks
+ @$(LOG_TARGET)
go mod tidy
@if [ ! -z "`git status -s`" ]; then \
echo "Following files are not consistent with CI:"; \
@@ -88,17 +102,22 @@ check:
fi
.PHONY: build
-build:
+build: ## Build skywalking-go agent binary
+ @$(LOG_TARGET)
@make -C tools/go-agent build
.PHONE: release
-release:
+release: ## Build skywalking-go agent release
+ @$(LOG_TARGET)
/bin/sh tools/release/create_bin_release.sh
/bin/sh tools/release/create_source_release.sh
base.all := go1.16 go1.17 go1.18 go1.19 go1.20 go1.21 go1.22
base.each = $(word 1, $@)
+
+##@ Docker
+
base.image.go1.16 := golang:1.16
base.image.go1.17 := golang:1.17
base.image.go1.18 := golang:1.18
@@ -118,6 +137,7 @@ $(base.all:%=docker.%):
FINAL_TAG=$(VERSION)-$(base.each:docker.%=%)
$(base.all:%=docker.push.%):
BASE_IMAGE=$($(base.each:docker.push.%=base.image.%))
$(base.all:%=docker.push.%): FINAL_TAG=$(VERSION)-$(base.each:docker.push.%=%)
$(base.all:%=docker.%) $(base.all:%=docker.push.%):
+ @$(LOG_TARGET)
docker buildx create --use --driver docker-container --name
skywalking_go > /dev/null 2>&1 || true
docker buildx build $(PLATFORMS) $(LOAD_OR_PUSH) \
--no-cache \
@@ -127,5 +147,5 @@ $(base.all:%=docker.%) $(base.all:%=docker.push.%):
docker buildx rm skywalking_go || true
.PHONY: docker docker.push
-docker: $(base.all:%=docker.%)
+docker: $(base.all:%=docker.%) ## Build docker images for skywalking-go agent
and Push docker images to registry
docker.push: $(base.all:%=docker.push.%)
\ No newline at end of file