DOCKER_REPOSITORY ?= docker.io/bornholm YQ_VERSION ?= v4.30.4 YQ_BINARY ?= yq_linux_amd64 tools: tools/yq/bin/yq tools/yq/bin/yq: mkdir -p tools/yq/bin wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/${YQ_BINARY} -O tools/yq/bin/yq &&\ chmod +x tools/yq/bin/yq build: CGO_ENABLED=0 go build -v -o bin/fake-smtp ./cmd/fake-smtp docker-image: docker build \ --build-arg HTTP_PROXY=$(HTTP_PROXY) \ --build-arg HTTPS_PROXY=$(HTTPS_PROXY) \ --build-arg http_proxy=$(http_proxy) \ --build-arg https_proxy=$(https_proxy) \ -t fake-smtp:latest \ -f ./misc/docker/Dockerfile \ . docker-run: docker run \ --rm -it \ -p 8080:8080 \ -p 2525:2525 \ --tmpfs /app/data \ fake-smtp:latest docker-release: .mktools docker tag fake-smtp:latest $(DOCKER_REPOSITORY)/fake-smtp:$(MKT_PROJECT_VERSION) docker tag fake-smtp:latest $(DOCKER_REPOSITORY)/fake-smtp:$(MKT_PROJECT_SHORT_VERSION) docker tag fake-smtp:latest $(DOCKER_REPOSITORY)/fake-smtp:$(MKT_PROJECT_VERSION_CHANNEL)-latest docker tag fake-smtp:latest $(DOCKER_REPOSITORY)/fake-smtp:$(MKT_PROJECT_SHORT_VERSION_CHANNEL)-latest docker push $(DOCKER_REPOSITORY)/fake-smtp:$(MKT_PROJECT_VERSION) docker push $(DOCKER_REPOSITORY)/fake-smtp:$(MKT_PROJECT_SHORT_VERSION) docker push $(DOCKER_REPOSITORY)/fake-smtp:$(MKT_PROJECT_VERSION_CHANNEL)-latest docker push $(DOCKER_REPOSITORY)/fake-smtp:$(MKT_PROJECT_SHORT_VERSION_CHANNEL)-latest test: go test -v -race ./... release: dist tools @./misc/script/release.sh dist: npm run build tidy: go mod tidy watch: go run github.com/cortesi/modd/cmd/modd@v0.8.1 lint: golangci-lint run --enable-all tooling: go get github.com/krishicks/yaml-patch/cmd/yaml-patch clean: rm -rf release rm -rf data rm -rf vendor rm -rf bin .PHONY: mktools mktools: rm -rf .mktools curl -q https://forge.cadoles.com/Cadoles/mktools/raw/branch/master/install.sh | $(SHELL) .mktools: $(MAKE) mktools -include .mktools/*.mk .PHONY: lint watch build vendor tidy release