You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
1.9 KiB
89 lines
1.9 KiB
APP := riffraff
|
|
OUTDIR := .bin
|
|
TMPDIR := .tmp
|
|
PKGS := $(shell go list ./... | grep -v vendor)
|
|
GIT_SHA := $(shell git rev-parse HEAD)
|
|
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
|
VERSION := $(shell git describe)
|
|
|
|
GOBIN := $(GOPATH)/bin
|
|
LINTBIN := $(GOBIN)/golangci-lint
|
|
BINARY := $(OUTDIR)/$(app)
|
|
|
|
define SHORTCUT_DATA
|
|
{
|
|
"shortcuts": {
|
|
"*": "https://duckduckgo.com/%s",
|
|
"fb": "https://facebook.com",
|
|
"gh": "https://github.com",
|
|
"gitemoji": "https://www.webfx.com/tools/emoji-cheat-sheet/"
|
|
}
|
|
}
|
|
endef
|
|
export SHORTCUT_DATA
|
|
|
|
dev: clean $(BINARY)-dev
|
|
./$(BINARY)-dev -port 8080 -accesslog=true -data=data.json
|
|
|
|
package-run: package
|
|
@docker run -it --rm --name riffraff -u 1000:1000 -p 8080:8080 -v $$PWD/.tmp:/data vdhsn/$(APP):$(GIT_SHA)
|
|
|
|
test: lint
|
|
go test -v -cover $(PKGS)
|
|
|
|
lint: $(LINTBIN)
|
|
@$(LINTBIN) run -p format -p unused -p bugs -p performance
|
|
|
|
$(LINTBIN):
|
|
@GO111MODULE=on go get github.com/golangci/golangci-lint/cmd/golangci-lint
|
|
|
|
package:
|
|
@docker build --build-arg VERSION=$(VERSION) \
|
|
--build-arg COMMIT=$(GIT_SHA) \
|
|
-t vdhsn/$(APP):$(VERSION) .
|
|
@docker tag vdhsn/$(APP):$(VERSION) vdhsn/$(APP):$(GIT_SHA)
|
|
@docker tag vdhsn/$(APP):$(VERSION) vdhsn/$(APP):$(GIT_BRANCH)
|
|
docker images | grep 'vdhsn/$(APP)'
|
|
|
|
publish: package
|
|
docker push vdhsn/$(APP):$(VERSION)
|
|
docker push vdhsn/$(APP):$(GIT_BRANCH)
|
|
|
|
release: tag package publish
|
|
@docker tag vdhsn/$(APP):$(GIT_BRANCH) vdhsn/$(APP):$${TAG}
|
|
docker push vdhsn/$(APP):$${TAG}
|
|
|
|
show-versions:
|
|
@git tag --merged refs/heads/master
|
|
|
|
tag:
|
|
git tag -as $${TAG}
|
|
|
|
clean:
|
|
rm -rf $(OUTDIR)
|
|
|
|
clobber: clean
|
|
rm -rf $(TMPDIR)
|
|
|
|
build: $(BINARY)
|
|
|
|
$(OUTDIR):
|
|
@mkdir $@
|
|
|
|
$(TMPDIR):
|
|
@mkdir $@
|
|
|
|
$(BINARY): packr .bin
|
|
@packr build -o $@ -v .
|
|
|
|
$(BINARY)-dev: .bin
|
|
@go build -o $@ -v .
|
|
|
|
data.json:
|
|
@echo "$${SHORTCUT_DATA}" > data.json
|
|
|
|
packr:
|
|
go get -u github.com/gobuffalo/packr/packr
|
|
|
|
.PHONY: build clean clobber dev lint package package-run publish packr show-versions tag test
|