mirror of
https://github.com/valitydev/wapi-lib.git
synced 2024-11-06 10:15:17 +00:00
145 lines
3.5 KiB
Makefile
145 lines
3.5 KiB
Makefile
REBAR = $(or $(shell which rebar3), $(error "`rebar3' executable missing"))
|
|
SUBMODULES = build-utils
|
|
|
|
# wapi
|
|
SUBMODULES += schemes/swag
|
|
SUBTARGETS = $(patsubst %,%/.git,$(SUBMODULES))
|
|
|
|
UTILS_PATH := build-utils
|
|
TEMPLATES_PATH := .
|
|
|
|
# Name of the service
|
|
SERVICE_NAME := fistful-server
|
|
# Service image default tag
|
|
SERVICE_IMAGE_TAG ?= $(shell git rev-parse HEAD)
|
|
# The tag for service image to be pushed with
|
|
SERVICE_IMAGE_PUSH_TAG ?= $(SERVICE_IMAGE_TAG)
|
|
|
|
# Base image for the service
|
|
BASE_IMAGE_NAME := service_erlang
|
|
BASE_IMAGE_TAG := 16e2b3ef17e5fdefac8554ced9c2c74e5c6e9e11
|
|
|
|
# Build image tag to be used
|
|
BUILD_IMAGE_TAG := 585ec439a97bade30cfcebc36cefdb45f13f3372
|
|
|
|
CALL_ANYWHERE := all submodules compile xref lint dialyze release clean distclean
|
|
CALL_ANYWHERE += generate regenerate
|
|
|
|
CALL_W_CONTAINER := $(CALL_ANYWHERE) test
|
|
|
|
all: compile
|
|
|
|
-include $(UTILS_PATH)/make_lib/utils_container.mk
|
|
-include $(UTILS_PATH)/make_lib/utils_image.mk
|
|
|
|
.PHONY: $(CALL_W_CONTAINER)
|
|
|
|
$(SUBTARGETS): %/.git: %
|
|
git submodule update --init $<
|
|
touch $@
|
|
|
|
submodules: $(SUBTARGETS)
|
|
|
|
compile: submodules generate
|
|
$(REBAR) compile
|
|
|
|
xref: submodules
|
|
$(REBAR) xref
|
|
|
|
lint:
|
|
elvis rock
|
|
|
|
dialyze: submodules
|
|
$(REBAR) dialyzer
|
|
|
|
release: submodules
|
|
$(REBAR) as prod release
|
|
|
|
clean:
|
|
$(REBAR) clean
|
|
|
|
distclean: swag_server.distclean swag_client.distclean
|
|
$(REBAR) clean -a
|
|
rm -rf _build
|
|
|
|
test: submodules
|
|
$(REBAR) eunit ct
|
|
|
|
TESTSUITES = $(wildcard apps/*/test/*_SUITE.erl)
|
|
|
|
define testsuite
|
|
|
|
test.$(patsubst ff_%_SUITE.erl,%,$(notdir $(1))): $(1) submodules
|
|
$(REBAR) ct --suite=$$<
|
|
|
|
endef
|
|
|
|
$(foreach suite,$(TESTSUITES),$(eval $(call testsuite,$(suite))))
|
|
|
|
|
|
#
|
|
# wapi
|
|
#
|
|
|
|
.PHONY: generate regenerate swag_server.generate swag_server.regenerate swag_client.generate swag_client.regenerate
|
|
|
|
generate: swag_server.generate swag_client.generate
|
|
|
|
regenerate: swag_server.regenerate swag_client.regenerate
|
|
|
|
SWAGGER_CODEGEN = $(call which, swagger-codegen)
|
|
SWAGGER_SCHEME_BASE_PATH := schemes/swag
|
|
APP_PATH := apps
|
|
SWAGGER_SCHEME_API_PATH := $(SWAGGER_SCHEME_BASE_PATH)/api
|
|
SWAG_SPEC_FILE := swagger.yaml
|
|
|
|
# Swagger server
|
|
|
|
SWAG_SERVER_PREFIX := swag_server
|
|
SWAG_SERVER_APP_TARGET := $(APP_PATH)/$(SWAG_SERVER_PREFIX)
|
|
SWAG_SERVER_APP_PATH := $(APP_PATH)/$(SWAG_SERVER_PREFIX)
|
|
|
|
SWAG_SERVER_APP_TARGET_WALLET := $(SWAG_SERVER_APP_PATH)_wallet/rebar.config
|
|
|
|
$(SWAG_SERVER_APP_PATH)_%/rebar.config: $(SWAGGER_SCHEME_API_PATH)/$*
|
|
$(SWAGGER_CODEGEN) generate \
|
|
-i $(SWAGGER_SCHEME_API_PATH)/$*/$(SWAG_SPEC_FILE) \
|
|
-l erlang-server \
|
|
-o $(SWAG_SERVER_APP_PATH)_$* \
|
|
--additional-properties \
|
|
packageName=$(SWAG_SERVER_PREFIX)_$*
|
|
|
|
swag_server.generate: $(SWAG_SERVER_APP_TARGET_WALLET)
|
|
|
|
swag_server.distclean: swag_server.distclean_wallet
|
|
|
|
swag_server.distclean_%:
|
|
rm -rf $(SWAG_SERVER_APP_PATH)_$*
|
|
|
|
swag_server.regenerate: swag_server.distclean swag_server.generate
|
|
|
|
# Swagger client
|
|
|
|
SWAG_CLIENT_PREFIX := swag_client
|
|
SWAG_CLIENT_APP_TARGET := $(APP_PATH)/$(SWAG_CLIENT_PREFIX)
|
|
SWAG_CLIENT_APP_PATH := $(APP_PATH)/$(SWAG_CLIENT_PREFIX)
|
|
|
|
SWAG_CLIENT_APP_TARGET_WALLET := $(SWAG_CLIENT_APP_PATH)_wallet/rebar.config
|
|
|
|
$(SWAG_CLIENT_APP_PATH)_%/rebar.config: $(SWAGGER_SCHEME_API_PATH)/$*
|
|
$(SWAGGER_CODEGEN) generate \
|
|
-i $(SWAGGER_SCHEME_API_PATH)/$*/$(SWAG_SPEC_FILE) \
|
|
-l erlang-client \
|
|
-o $(SWAG_CLIENT_APP_PATH)_$* \
|
|
--additional-properties \
|
|
packageName=$(SWAG_CLIENT_PREFIX)_$*
|
|
|
|
swag_client.generate: $(SWAG_CLIENT_APP_TARGET_WALLET)
|
|
|
|
swag_client.distclean: swag_client.distclean_wallet
|
|
|
|
swag_client.distclean_%:
|
|
rm -rf $(SWAG_CLIENT_APP_PATH)_$*
|
|
|
|
swag_client.regenerate: swag_client.distclean swag_client.generate
|