Files
document-server-integration/web/documentserver-example/ruby/Makefile
2023-10-24 09:38:00 +04:00

81 lines
1.9 KiB
Makefile

.DEFAULT_GOAL := help
ifeq ($(OS),Windows_NT)
SORBET_SUPPORTED := 0
else
NAME := $(shell uname -s)
ifeq ($(NAME),Darwin)
SORBET_SUPPORTED := 1
else
ARCH := $(shell uname -p)
ifeq ($(ARCH),x86_64)
SORBET_SUPPORTED := 1
else
SORBET_SUPPORTED := 0
endif
endif
endif
.PHONY: help
help: # Show help message for each of the Makefile recipes.
@grep -E "^[a-z-]+: #" $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ": # "}; {printf "%s: %s\n", $$1, $$2}'
.PHONY: dev
dev: \
export BUNDLE_WITH := development:doc:test
dev: # Install development dependencies and initialize the project.
@bundle install
@bundle exec rake app:update:bin
ifeq ($(SORBET_SUPPORTED),1)
@bundle exec tapioca init
endif
.PHONY: prod
prod: \
export BUNDLE_WITHOUT := development:doc:test
prod: # Install production dependencies.
@bundle install
@bundle exec rake app:update:bin
.PHONY: server-dev
server-dev: # Start the development server on localhost at $PORT (default: 3000).
@bundle exec rails server
.PHONY: server-prod
server-prod: # Start the poruction server on 0.0.0.0 at $PORT (default: 3000).
@bundle exec rails server --environment production
.PHONY: compose-dev
compose-dev: # Up containers in a development environment.
@docker-compose \
--file compose-base.yml \
--file compose-dev.yml \
build
@docker-compose \
--file compose-base.yml \
--file compose-dev.yml \
up --detach
.PHONY: compose-prod
compose-prod: # Up containers in a production environment.
@docker-compose \
--file compose-base.yml \
--file compose-prod.yml \
build
@docker-compose \
--file compose-base.yml \
--file compose-prod.yml \
up --detach
.PHONY: lint
lint: # Lint the source code for style and check for types.
@bundle exec rubocop
ifeq ($(SORBET_SUPPORTED),1)
@bundle exec srb tc
endif
.PHONY: test
test: # Recursively run the tests.
@bundle exec rake test