.PHONY:  build test check build-bin generate generate4test go-clean clean

build: build-bin

test: generate generate4test
	@go install gotest.tools/gotestsum@latest
	@(gotestsum --junitfile ../unit-tests-core.xml ./...)

check: generate
	@./scripts/check.sh

# Go build
build-bin: generate bin/server

generate:
	@(make -C ../idl generate)
	@(make -C ../central generate)

generate4test:
	@(./scripts/gen_mock.sh)


go-clean:
	go clean

clean: go-clean
	rm -f ./core_ctx/domain/repo/mock_repo/*
	rm -f ./core_ctx/domain/facade/mock_facade/*
	rm -f ./core_ctx/domain/service/mock_service/*
	rm -f ./core_ctx/application/mock_application/*
	rm -f ./core_ctx/application/cmd/mock_*_test.go
	rm -f ./core_ctx/application/cmd/measure/mock_*_test.go
	rm -f ./build/server/server

# Binary build
bin/server: cmd/server/main.go
	./scripts/go-build -o build/server/server cmd/server/main.go

cover:
	go test -cover -coverprofile=coverage.out -race ./...
	go tool cover -html=coverage.out
	rm -f coverage.out
