mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-24 12:29:05 +01:00
98 lines
2.7 KiB
Makefile
98 lines
2.7 KiB
Makefile
TARGET = ./cc-backend
|
|
VAR = ./var
|
|
CFG = config.json .env
|
|
FRONTEND = ./web/frontend
|
|
VERSION = 1.4.0
|
|
GIT_HASH := $(shell git rev-parse --short HEAD || echo 'development')
|
|
CURRENT_TIME = $(shell date +"%Y-%m-%d:T%H:%M:%S")
|
|
LD_FLAGS = '-s -X main.date=${CURRENT_TIME} -X main.version=${VERSION} -X main.commit=${GIT_HASH}'
|
|
|
|
EXECUTABLES = go npm
|
|
K := $(foreach exec,$(EXECUTABLES),\
|
|
$(if $(shell which $(exec)),some string,$(error "No $(exec) in PATH")))
|
|
|
|
SVELTE_COMPONENTS = status \
|
|
analysis \
|
|
node \
|
|
systems \
|
|
job \
|
|
list \
|
|
user \
|
|
jobs \
|
|
header
|
|
|
|
SVELTE_TARGETS = $(addprefix $(FRONTEND)/public/build/,$(addsuffix .js, $(SVELTE_COMPONENTS)))
|
|
SVELTE_SRC = $(wildcard $(FRONTEND)/src/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/*.js) \
|
|
$(wildcard $(FRONTEND)/src/analysis/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/config/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/config/admin/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/config/user/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/generic/*.js) \
|
|
$(wildcard $(FRONTEND)/src/generic/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/generic/filters/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/generic/plots/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/generic/joblist/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/generic/helper/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/generic/select/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/header/*.svelte) \
|
|
$(wildcard $(FRONTEND)/src/job/*.svelte)
|
|
|
|
.PHONY: clean distclean test tags frontend swagger graphql $(TARGET)
|
|
|
|
.NOTPARALLEL:
|
|
|
|
$(TARGET): $(VAR) $(CFG) $(SVELTE_TARGETS)
|
|
$(info ===> BUILD cc-backend)
|
|
@go build -ldflags=${LD_FLAGS} ./cmd/cc-backend
|
|
|
|
frontend:
|
|
$(info ===> BUILD frontend)
|
|
cd web/frontend && npm install && npm run build
|
|
|
|
swagger:
|
|
$(info ===> GENERATE swagger)
|
|
@go run github.com/swaggo/swag/cmd/swag init -d ./internal/api,./pkg/schema -g rest.go -o ./api
|
|
@mv ./api/docs.go ./internal/api/docs.go
|
|
|
|
graphql:
|
|
$(info ===> GENERATE graphql)
|
|
@go run github.com/99designs/gqlgen
|
|
|
|
clean:
|
|
$(info ===> CLEAN)
|
|
@go clean
|
|
@rm -f $(TARGET)
|
|
|
|
distclean:
|
|
@$(MAKE) clean
|
|
$(info ===> DISTCLEAN)
|
|
@rm -rf $(FRONTEND)/node_modules
|
|
@rm -rf $(VAR)
|
|
|
|
test:
|
|
$(info ===> TESTING)
|
|
@go clean -testcache
|
|
@go build ./...
|
|
@go vet ./...
|
|
@go test ./...
|
|
|
|
tags:
|
|
$(info ===> TAGS)
|
|
@ctags -R
|
|
|
|
$(VAR):
|
|
@mkdir $(VAR)
|
|
|
|
config.json:
|
|
$(info ===> Initialize config.json file)
|
|
@cp configs/config.json config.json
|
|
|
|
.env:
|
|
$(info ===> Initialize .env file)
|
|
@cp configs/env-template.txt .env
|
|
|
|
$(SVELTE_TARGETS): $(SVELTE_SRC)
|
|
$(info ===> BUILD frontend)
|
|
cd web/frontend && npm install && npm run build
|