2018-09-05 20:26:03 +02:00
|
|
|
export GO111MODULE=on
|
|
|
|
GOCMD=go
|
|
|
|
GOINSTALL=$(GOCMD) install
|
|
|
|
GOBUILD=$(GOCMD) build
|
2018-10-21 10:01:48 +02:00
|
|
|
GOMOD=$(GOCMD) mod
|
2018-09-05 20:26:03 +02:00
|
|
|
GORUN=$(GOCMD) run
|
|
|
|
GOCLEAN=$(GOCMD) clean
|
|
|
|
GOTEST=$(GOCMD) test
|
2018-11-06 15:33:23 +01:00
|
|
|
GOTOOL=$(GOCMD) tool
|
2018-09-05 20:26:03 +02:00
|
|
|
GOGET=$(GOCMD) get
|
2018-09-06 14:47:32 +02:00
|
|
|
GOFMT=$(GOCMD) fmt
|
2018-10-31 07:14:33 +01:00
|
|
|
GOIMPORTS=goimports
|
2018-09-05 20:26:03 +02:00
|
|
|
BINARY_NAME=photoprism
|
2018-11-08 10:56:11 +01:00
|
|
|
DOCKER_TAG=`date -u +%Y%m%d`
|
2018-09-05 20:26:03 +02:00
|
|
|
|
2018-11-08 16:41:14 +01:00
|
|
|
all: download dep js build
|
2018-09-14 12:44:15 +02:00
|
|
|
install: install-bin install-assets install-config
|
|
|
|
install-bin:
|
2018-11-12 06:58:39 +01:00
|
|
|
scripts/build.sh prod /usr/local/bin/$(BINARY_NAME)
|
2018-09-14 12:44:15 +02:00
|
|
|
install-assets:
|
2018-11-08 10:56:11 +01:00
|
|
|
mkdir -p /srv/photoprism/photos
|
2018-11-09 20:48:23 +01:00
|
|
|
mkdir -p /srv/photoprism/cache
|
2018-11-09 19:25:58 +01:00
|
|
|
mkdir -p /srv/photoprism/database
|
|
|
|
cp -r assets/server /srv/photoprism
|
2018-11-08 10:56:11 +01:00
|
|
|
cp -r assets/tensorflow /srv/photoprism
|
2018-11-09 11:41:07 +01:00
|
|
|
find /srv/photoprism -name '.*' -type f -delete
|
2018-09-14 12:44:15 +02:00
|
|
|
install-config:
|
|
|
|
mkdir -p /etc/photoprism
|
2018-09-18 15:13:02 +02:00
|
|
|
test -e /etc/photoprism/photoprism.yml || cp -n configs/photoprism.yml /etc/photoprism/photoprism.yml
|
2018-09-05 20:26:03 +02:00
|
|
|
build:
|
2018-11-09 11:41:07 +01:00
|
|
|
scripts/build.sh debug $(BINARY_NAME)
|
2018-09-05 22:55:28 +02:00
|
|
|
js:
|
2018-11-09 10:56:52 +01:00
|
|
|
(cd frontend && yarn install --frozen-lockfile --prod)
|
2018-09-13 20:54:34 +02:00
|
|
|
(cd frontend && env NODE_ENV=production npm run build)
|
2018-09-05 22:55:28 +02:00
|
|
|
start:
|
|
|
|
$(GORUN) cmd/photoprism/photoprism.go start
|
2018-09-18 15:21:22 +02:00
|
|
|
migrate:
|
|
|
|
$(GORUN) cmd/photoprism/photoprism.go migrate
|
2018-09-05 20:26:03 +02:00
|
|
|
test:
|
2018-11-06 16:17:49 +01:00
|
|
|
$(GOTEST) -timeout 20m -v ./internal/...
|
|
|
|
test-race:
|
|
|
|
$(GOTEST) -race -timeout 60m -v ./internal/...
|
2018-11-06 16:47:17 +01:00
|
|
|
test-codecov:
|
2018-11-06 16:17:49 +01:00
|
|
|
$(GOTEST) -timeout 30m -coverprofile=coverage.txt -covermode=atomic -v ./internal/...
|
2018-11-06 17:49:03 +01:00
|
|
|
scripts/codecov.sh
|
2018-11-06 16:47:17 +01:00
|
|
|
test-coverage:
|
2018-11-06 16:17:49 +01:00
|
|
|
$(GOTEST) -timeout 30m -coverprofile=coverage.txt -covermode=atomic -v ./internal/...
|
2018-11-06 15:33:23 +01:00
|
|
|
$(GOTOOL) cover -html=coverage.txt -o coverage.html
|
2018-09-05 20:26:03 +02:00
|
|
|
clean:
|
|
|
|
$(GOCLEAN)
|
|
|
|
rm -f $(BINARY_NAME)
|
2018-11-08 16:41:14 +01:00
|
|
|
download:
|
|
|
|
scripts/download-inception.sh
|
2018-11-08 10:56:11 +01:00
|
|
|
deploy-photoprism:
|
|
|
|
scripts/docker-build.sh photoprism $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh photoprism $(DOCKER_TAG)
|
|
|
|
deploy-development:
|
|
|
|
scripts/docker-build.sh development $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh development $(DOCKER_TAG)
|
|
|
|
deploy-tensorflow:
|
|
|
|
scripts/docker-build.sh tensorflow $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh tensorflow $(DOCKER_TAG)
|
2018-11-12 06:58:39 +01:00
|
|
|
deploy-darktable:
|
|
|
|
DARKTABLE_VERSION="$(awk '$2 == "DARKTABLE_VERSION" { print $3; exit }' docker/darktable/Dockerfile)"
|
|
|
|
scripts/docker-build.sh darktable $(DARKTABLE_VERSION)
|
|
|
|
scripts/docker-push.sh darktable $(DARKTABLE_VERSION)
|
2018-09-11 10:56:52 +02:00
|
|
|
fmt:
|
2018-10-31 07:14:33 +01:00
|
|
|
$(GOIMPORTS) -w internal cmd
|
2018-10-31 12:57:37 +01:00
|
|
|
$(GOFMT) ./internal/... ./cmd/...
|
2018-09-11 10:56:52 +02:00
|
|
|
dep:
|
2018-09-05 22:55:28 +02:00
|
|
|
$(GOBUILD) -v ./...
|
2018-10-21 10:01:48 +02:00
|
|
|
$(GOMOD) tidy
|
2018-09-05 22:55:28 +02:00
|
|
|
upgrade:
|
|
|
|
$(GOGET) -u
|