.PHONY: test build-all deploy

test:
	go get golang.org/x/lint/golint
	go fmt
	golint
	go test --race --cover -run=Test$
deploy:
	@echo "$(DOCKER_PASSWORD)" | docker login -u "$(DOCKER_USERNAME)" --password-stdin
	docker build -f Dockerfile -t $(REPO):$(TAG) .
	echo "Pushing $(REPO):$(COMMIT) $(REPO):$(TAG)"
	docker push $(REPO)
build-all:
	rm -rf build
	mkdir build
	env GOOS="windows" GOARCH="amd64" go build -o "build/gitleaks-windows-amd64.exe"
	env GOOS="windows" GOARCH="386" go build -o "build/gitleaks-windows-386.exe"
	env GOOS="linux" GOARCH="amd64" go build -o "build/gitleaks-linux-amd64"
	env GOOS="linux" GOARCH="arm" go build -o "build/gitleaks-linux-arm"
	env GOOS="linux" GOARCH="mips" go build -o "build/gitleaks-linux-mips"
	env GOOS="linux" GOARCH="mips" go build -o "build/gitleaks-linux-mips"
	env GOOS="darwin" GOARCH="amd64" go build -o "build/gitleaks-darwin-amd64"
benchmark:
	go test -run=Benchmark -bench=. -benchtime=5s
benchmark-fast:
	go test -bench=BenchmarkAuditLeakRepo -run=BenchmarkAuditLeakRepo$

