mirror of
				https://github.com/taigrr/bitcask
				synced 2025-01-18 04:03:17 -08:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
.PHONY: dev build generate install image release profile bench test clean setup
 | 
						|
 | 
						|
CGO_ENABLED=0
 | 
						|
VERSION=$(shell git describe --abbrev=0 --tags)
 | 
						|
COMMIT=$(shell git rev-parse --short HEAD)
 | 
						|
 | 
						|
all: dev
 | 
						|
 | 
						|
dev: build
 | 
						|
	@./bitcask --version
 | 
						|
	@./bitcaskd --version
 | 
						|
 | 
						|
build: clean generate
 | 
						|
	@go build \
 | 
						|
		-tags "netgo static_build" -installsuffix netgo \
 | 
						|
		-ldflags "-w -X $(shell go list)/internal.Version=$(VERSION) -X $(shell go list)/internal.Commit=$(COMMIT)" \
 | 
						|
		./cmd/bitcask/...
 | 
						|
	@go build \
 | 
						|
		-tags "netgo static_build" -installsuffix netgo \
 | 
						|
		-ldflags "-w -X $(shell go list)/internal.Version=$(VERSION) -X $(shell go list)/internal.Commit=$(COMMIT)" \
 | 
						|
		./cmd/bitcaskd/...
 | 
						|
 | 
						|
generate:
 | 
						|
	@go generate $(shell go list)/...
 | 
						|
 | 
						|
install: build
 | 
						|
	@go install ./cmd/bitcask/...
 | 
						|
	@go install ./cmd/bitcaskd/...
 | 
						|
 | 
						|
ifeq ($(PUBLISH), 1)
 | 
						|
image:
 | 
						|
	@docker build --build-arg VERSION="$(VERSION)" --build-arg COMMIT="$(COMMIT)" -t prologic/bitcask .
 | 
						|
	@docker push prologic/bitcask
 | 
						|
else
 | 
						|
image:
 | 
						|
	@docker build --build-arg VERSION="$(VERSION)" --build-arg COMMIT="$(COMMIT)" -t prologic/bitcask .
 | 
						|
endif
 | 
						|
 | 
						|
release:
 | 
						|
	@./tools/release.sh
 | 
						|
 | 
						|
profile: build
 | 
						|
	@go test -cpuprofile cpu.prof -memprofile mem.prof -v -bench .
 | 
						|
 | 
						|
bench: build
 | 
						|
	@go test -v -run=XXX -benchmem -bench=. .
 | 
						|
 | 
						|
mocks:
 | 
						|
	@mockery -all -case underscore -output ./internal/mocks -recursive
 | 
						|
 | 
						|
test: build
 | 
						|
	@go test -v \
 | 
						|
		-cover -coverprofile=coverage.txt -covermode=atomic \
 | 
						|
		-coverpkg=$(shell go list) \
 | 
						|
		-race \
 | 
						|
		.
 | 
						|
 | 
						|
setup:
 | 
						|
	@go get github.com/vektra/mockery/...
 | 
						|
 | 
						|
clean:
 | 
						|
	@git clean -f -d -X
 |