Skip to content

Commit

Permalink
chore: improve makefile (#1964)
Browse files Browse the repository at this point in the history
  • Loading branch information
schoren committed Feb 9, 2023
1 parent 6985d33 commit d87e4a7
Showing 1 changed file with 44 additions and 20 deletions.
64 changes: 44 additions & 20 deletions Makefile
@@ -1,33 +1,57 @@
PROJECT_ROOT=${PWD}
OPENAPI_GENERATOR_VER=v6.3.0
OPENAPI_GENERATOR_IMAGE=openapitools/openapi-generator-cli:$(OPENAPI_GENERATOR_VER)
OPENAPI_GENERATOR_CLI=docker run --rm -u ${shell id -u} -v "$(PROJECT_ROOT):/local" -w "/local" ${OPENAPI_GENERATOR_IMAGE}
OPENAPI_TARGET_DIR=openapi/

GORELEASER_VERSION=1.15.0-pro
CURRENT_GORELEASER_VERSION := $(shell goreleaser --version | head -n 1 | cut -d' ' -f3-)
goreleaser-version:
ifneq "$(CURRENT_GORELEASER_VERSION)" "$(GORELEASER_VERSION)"
$(error Bad goreleaser version $(CURRENT_GORELEASER_VERSION), please install $(GORELEASER_VERSION))
endif

CLI_SRC_FILES := $(shell find cli -type f)
dist/tracetest: goreleaser-version generate-cli $(CLI_SRC_FILES)
goreleaser build --single-target --clean --snapshot --id cli
find ./dist -name 'tracetest' -exec cp {} ./dist \;

SERVER_SRC_FILES := $(shell find server -type f)
dist/tracetest-server: goreleaser-version generate-server $(SERVER_SRC_FILES)
goreleaser build --single-target --clean --snapshot --id server
find ./dist -name 'tracetest-server' -exec cp {} ./dist \;

web/node_modules: web/package.json web/package-lock.json
cd web; npm ci

WEB_SRC_FILES := $(shell find web -type f -not -path "*node_modules*" -not -path "*build*" -not -path "*cypress/videos*" -not -path "*cypress/screenshots*")
web/build: generate-web web/node_modules $(WEB_SRC_FILES)
cd web; npm run build

help: Makefile ## show list of commands
@echo "Choose a command run:"
@echo ""
@awk 'BEGIN {FS = ":.*?## "} /[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-40s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) | sort

.PHONY: build-docker build-go build-web
build-docker: build-go build-web
VERSION=latest \
goreleaser release --clean --skip-announce --snapshot -f .goreleaser.dev.yaml

build-web:
cd web; npm install
cd web; npm run build

build-go:
goreleaser build --single-target --clean --snapshot
find ./dist -name 'tracetest*' -exec cp {} ./dist \;
.PHONY: run build build-go build-web build-docker
run: build-docker ## build and run tracetest using docker compose
docker compose up
build-go: dist/tracetest dist/tracetest-server ## build all go code
build-web: web/build ## build web
build-docker: goreleaser-version build-go build-web .goreleaser.dev.yaml ## build and tag docker image as defined in .goreleaser.dev.yaml
VERSION=latest goreleaser release --clean --skip-announce --snapshot -f .goreleaser.dev.yaml

generate: generate-server generate-cli generate-web
.PHONY: generate generate-server generate-cli generate-web
generate: generate-server generate-cli generate-web ## generate code entities from openapi definitions for all parts of the code
generate-server: $(wildcard server/openapi/*.go) ## generate code entities from openapi definitions for server
generate-cli: $(wildcard cli/openapi/*.go) ## generate code entities from openapi definitions for cli
generate-web: web/src/types/Generated.types.ts ## generate code entities from openapi definitions for web

generate-web: ## generates OpenAPI types for WebUI
OPENAPI_SRC_FILES := $(shell find api -type f)
OPENAPI_GENERATOR_VER=v6.3.0
OPENAPI_GENERATOR_IMAGE=openapitools/openapi-generator-cli:$(OPENAPI_GENERATOR_VER)
OPENAPI_GENERATOR_CLI=docker run --rm -u ${shell id -u} -v "$(PROJECT_ROOT):/local" -w "/local" ${OPENAPI_GENERATOR_IMAGE}
OPENAPI_TARGET_DIR=openapi/
web/src/types/Generated.types.ts: $(OPENAPI_SRC_FILES)
cd web; npm run types:generate

generate-cli:
$(wildcard cli/openapi/*.go): $(OPENAPI_SRC_FILES)
$(eval BASE := ./cli)
mkdir -p $(BASE)/tmp
rm -rf $(BASE)/$(OPENAPI_TARGET_DIR)
Expand All @@ -44,7 +68,7 @@ generate-cli:

cd $(BASE); go fmt ./...

generate-server: ## generates OpenAPI types for server
$(wildcard server/openapi/*.go): $(OPENAPI_SRC_FILES)
$(eval BASE := ./server)
mkdir -p $(BASE)/tmp
rm -rf $(BASE)/$(OPENAPI_TARGET_DIR)
Expand Down

0 comments on commit d87e4a7

Please sign in to comment.