mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 22:41:30 +00:00
89 lines
2.4 KiB
Makefile
89 lines
2.4 KiB
Makefile
# Makefile for gilded-rose
|
|
# vim: set ft=make ts=8 noet
|
|
# Copyright Cabify.com
|
|
# Licence MIT
|
|
|
|
# Variables
|
|
# UNAME := $(shell uname -s)
|
|
|
|
.EXPORT_ALL_VARIABLES:
|
|
|
|
# this is godly
|
|
# https://news.ycombinator.com/item?id=11939200
|
|
.PHONY: help
|
|
help: ### this screen. Keep it first target to be default
|
|
ifeq ($(UNAME), Linux)
|
|
@grep -P '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \
|
|
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
else
|
|
@# this is not tested, but prepared in advance for you, Mac drivers
|
|
@awk -F ':.*###' '$$0 ~ FS {printf "%15s%s\n", $$1 ":", $$2}' \
|
|
$(MAKEFILE_LIST) | grep -v '@awk' | sort
|
|
endif
|
|
|
|
# Targets
|
|
#
|
|
.PHONY: debug
|
|
debug: ### Debug Makefile itself
|
|
@echo $(UNAME)
|
|
|
|
.PHONY: build-base
|
|
build-base:
|
|
docker run \
|
|
--env CGO_ENABLED=0 \
|
|
--env GOCACHE=/.cache/go-build \
|
|
--env GOMODCACHE=/go/mod/pkg \
|
|
-v "$$PWD:/app:rw" -v "$$HOME/.cache/go-build:/.cache/go-build:rw" -v "$$HOME/.cache/go-mod-pkg:/go/mod/pkg:rw" \
|
|
-w /app \
|
|
-u "$$(id -u):$$(id -g)" \
|
|
--entrypoint "/bin/sh" \
|
|
--rm -it \
|
|
golang:1.19.2-bullseye -c "$$GO_BUILD_CMD"
|
|
|
|
.PHONY: build
|
|
build:
|
|
GO_BUILD_CMD="go install github.com/swaggo/swag/cmd/swag@v1.16.1 && swag init" make build-base
|
|
GO_BUILD_CMD="go build -a -o target/bin/gilded-rose ./main.go" make build-base
|
|
|
|
.PHONY: build-dev
|
|
build-dev:
|
|
GO_BUILD_CMD="go install github.com/swaggo/swag/cmd/swag@v1.16.1 && swag init" make build-base
|
|
GO_BUILD_CMD="go build -v -o target/bin/gilded-rose ./main.go" make build-base
|
|
|
|
.PHONY: unit-test
|
|
unit-test:
|
|
GO_BUILD_CMD="go install github.com/swaggo/swag/cmd/swag@v1.16.1 && swag init" make build-base
|
|
GO_BUILD_CMD="go test ./... -cover -coverprofile=coverage.out" make build-base
|
|
GO_BUILD_CMD="go tool cover -html=coverage.out -o coverage.html" make build-base
|
|
|
|
.PHONY: mod-tidy
|
|
mod-tidy:
|
|
GO_BUILD_CMD="go mod tidy" make build-base
|
|
|
|
.PHONY: run
|
|
run: build-dev
|
|
target/bin/gilded-rose app:serve
|
|
|
|
.PHONY: test
|
|
test: build-dev
|
|
target/bin/gilded-rose test
|
|
|
|
.PHONY: texttest
|
|
texttest: build-dev
|
|
docker run \
|
|
--env XDG_CACHE_HOME=/.cache/pip \
|
|
--env PIP_CACHE_DIR=/.cache/pip \
|
|
--env TEXTTEST_ROOT=/app/texttests \
|
|
--env TEXTTEST_PATH=/app \
|
|
--env TEXTTEST_HOME=/app \
|
|
-v "$$PWD:/app:rw" -v "$$HOME/.cache/pip:/.cache/pip:rw" \
|
|
-w /app \
|
|
-u "$$(id -u):$$(id -g)" \
|
|
--entrypoint "/bin/sh" \
|
|
--rm -it \
|
|
python:3.9.17-slim-bookworm -c "pip install texttest && texttest -con"
|
|
|
|
.PHONY: docker
|
|
docker:
|
|
docker build -t gilded-rose:latest .
|