PROJECT_NAME := $(shell basename $(shell pwd)) GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD | sed 's/\//_/g') IMAGE_TAG := $(PROJECT_NAME):$(GIT_BRANCH) .PHONY: build check test run clean fmt lint doc vendor .PHONY: build-image run-image health-check list-services test-grpc setup: @rustup component add clippy rustfmt # Cargo targets build: vendor @cargo build --offline check: @cargo check test: @cargo test run: @cargo run --offline clean: @cargo clean fmt: @cargo fmt lint: @cargo clippy doc: @cargo doc --open vendor: @cargo vendor # Docker targets build-image: vendor @docker build --tag $(IMAGE_TAG) . build-image-clean: @docker build --no-cache --tag $(IMAGE_TAG) . run-image: build-image @docker run --rm -p 50051:50051 --init -it $(IMAGE_TAG) # gRPC testing targets health-check: @grpcurl -plaintext localhost:50051 grpc.health.v1.Health/Check list-services: @grpcurl -plaintext localhost:50051 list