2018-09-05 20:26:03 +02:00
|
|
|
export GO111MODULE=on
|
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`
|
2019-06-04 01:09:56 +02:00
|
|
|
TIDB_VERSION=2.1.11
|
2019-06-25 23:08:53 +02:00
|
|
|
TF_VERSION=1.14.0
|
2018-12-18 18:38:30 +01:00
|
|
|
DARKTABLE_VERSION="$(awk '$2 == "DARKTABLE_VERSION" { print $3; exit }' docker/darktable/Dockerfile)"
|
2018-09-05 20:26:03 +02:00
|
|
|
|
2019-06-03 16:31:15 +02:00
|
|
|
HASRICHGO := $(shell which richgo)
|
|
|
|
ifdef HASRICHGO
|
|
|
|
GOTEST=richgo test
|
|
|
|
else
|
|
|
|
GOTEST=go test
|
|
|
|
endif
|
|
|
|
|
2019-05-09 06:18:22 +02:00
|
|
|
all: dep build
|
|
|
|
dep: dep-tensorflow dep-js dep-go
|
|
|
|
build: build-js build-go
|
2019-06-05 18:25:20 +02:00
|
|
|
install: install-bin install-assets
|
2019-05-09 06:18:22 +02:00
|
|
|
test: test-js test-go
|
|
|
|
fmt: fmt-js fmt-go
|
|
|
|
upgrade: upgrade-js upgrade-go
|
|
|
|
start:
|
|
|
|
go run cmd/photoprism/photoprism.go start
|
|
|
|
migrate:
|
|
|
|
go run cmd/photoprism/photoprism.go migrate
|
2018-09-14 12:44:15 +02:00
|
|
|
install-bin:
|
2019-06-06 16:40:32 +02:00
|
|
|
$(info Building prodution binary...)
|
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:
|
2019-06-06 16:40:32 +02:00
|
|
|
$(info Installing assets in /srv/photoprism...)
|
|
|
|
mkdir -p /srv/photoprism/config
|
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
|
2019-06-06 16:40:32 +02:00
|
|
|
mkdir -p /srv/photoprism/resources/database
|
|
|
|
cp -r assets/resources/static assets/resources/templates assets/resources/nasnet /srv/photoprism/resources
|
2019-06-05 18:25:20 +02:00
|
|
|
rsync -a -v --ignore-existing assets/config/*.yml /srv/photoprism/config
|
2018-11-09 11:41:07 +01:00
|
|
|
find /srv/photoprism -name '.*' -type f -delete
|
2019-05-09 06:18:22 +02:00
|
|
|
dep-js:
|
|
|
|
(cd frontend && npm install)
|
|
|
|
dep-go:
|
|
|
|
go build -v ./...
|
|
|
|
dep-tensorflow:
|
|
|
|
scripts/download-nasnet.sh
|
2019-05-16 08:41:16 +02:00
|
|
|
zip-nasnet:
|
2019-06-05 18:25:20 +02:00
|
|
|
(cd assets/resources && zip -r nasnet.zip nasnet -x "*/.*" -x "*/version.txt")
|
2019-05-07 17:02:15 +02:00
|
|
|
build-js:
|
|
|
|
(cd frontend && env NODE_ENV=production npm run build)
|
2019-05-09 06:18:22 +02:00
|
|
|
build-go:
|
2019-06-09 04:37:02 +02:00
|
|
|
rm -f $(BINARY_NAME)
|
2019-05-09 06:18:22 +02:00
|
|
|
scripts/build.sh debug $(BINARY_NAME)
|
2019-06-22 23:14:30 +02:00
|
|
|
build-static:
|
|
|
|
rm -f $(BINARY_NAME)
|
|
|
|
scripts/build.sh static $(BINARY_NAME)
|
2019-05-21 02:27:08 +02:00
|
|
|
watch-js:
|
2019-06-07 00:04:34 +02:00
|
|
|
(cd frontend && env NODE_ENV=development npm run watch)
|
2019-05-07 15:41:33 +02:00
|
|
|
test-js:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running JS unit tests...)
|
2019-05-07 15:41:33 +02:00
|
|
|
(cd frontend && env NODE_ENV=development npm run test)
|
2019-05-20 20:06:26 +02:00
|
|
|
test-chromium:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running JS acceptance tests in Chrome...)
|
2019-05-20 20:06:26 +02:00
|
|
|
(cd frontend && npm run test-chromium)
|
|
|
|
test-firefox:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running JS acceptance tests in Firefox...)
|
2019-05-20 20:06:26 +02:00
|
|
|
(cd frontend && npm run test-firefox)
|
2019-05-09 06:18:22 +02:00
|
|
|
test-go:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running all Go unit tests...)
|
2019-06-03 16:31:15 +02:00
|
|
|
$(GOTEST) -tags=slow -timeout 20m ./internal/...
|
2019-06-04 18:26:35 +02:00
|
|
|
test-verbose:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running all Go unit tests in verbose mode...)
|
2019-06-03 16:31:15 +02:00
|
|
|
$(GOTEST) -tags=slow -timeout 20m -v ./internal/...
|
2019-04-18 20:16:09 +02:00
|
|
|
test-short:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running short Go unit tests in verbose mode...)
|
2019-06-03 16:31:15 +02:00
|
|
|
$(GOTEST) -short -timeout 5m -v ./internal/...
|
2018-11-06 16:17:49 +01:00
|
|
|
test-race:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running all Go unit tests with race detection in verbose mode...)
|
2019-06-03 16:31:15 +02:00
|
|
|
$(GOTEST) -tags=slow -race -timeout 60m -v ./internal/...
|
2018-11-06 16:47:17 +01:00
|
|
|
test-codecov:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running all Go unit tests with code coverage report for codecov...)
|
2018-11-14 23:55:23 +01:00
|
|
|
go test -tags=slow -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:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running all Go unit tests with code coverage report...)
|
2018-11-14 23:55:23 +01:00
|
|
|
go test -tags=slow -timeout 30m -coverprofile=coverage.txt -covermode=atomic -v ./internal/...
|
|
|
|
go tool cover -html=coverage.txt -o coverage.html
|
2018-09-05 20:26:03 +02:00
|
|
|
clean:
|
|
|
|
rm -f $(BINARY_NAME)
|
2019-05-07 16:16:39 +02:00
|
|
|
rm -f *.log
|
|
|
|
rm -rf node_modules
|
2019-05-04 00:53:02 +02:00
|
|
|
rm -rf assets/testdata
|
|
|
|
rm -rf assets/backups
|
2019-05-07 16:16:39 +02:00
|
|
|
rm -rf frontend/node_modules
|
2019-05-04 00:53:02 +02:00
|
|
|
docker-development:
|
|
|
|
scripts/docker-build.sh development $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh development $(DOCKER_TAG)
|
|
|
|
docker-photoprism:
|
2018-11-08 10:56:11 +01:00
|
|
|
scripts/docker-build.sh photoprism $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh photoprism $(DOCKER_TAG)
|
2019-05-04 00:53:02 +02:00
|
|
|
docker-demo:
|
2018-12-11 02:00:30 +01:00
|
|
|
scripts/docker-build.sh demo $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh demo $(DOCKER_TAG)
|
2019-05-04 00:53:02 +02:00
|
|
|
docker-tensorflow:
|
2019-06-25 23:08:53 +02:00
|
|
|
scripts/docker-build.sh tensorflow $(TF_VERSION)
|
|
|
|
scripts/docker-push.sh tensorflow $(TF_VERSION)
|
2019-05-04 00:53:02 +02:00
|
|
|
docker-darktable:
|
2018-11-12 06:58:39 +01:00
|
|
|
scripts/docker-build.sh darktable $(DARKTABLE_VERSION)
|
|
|
|
scripts/docker-push.sh darktable $(DARKTABLE_VERSION)
|
2019-05-04 00:53:02 +02:00
|
|
|
docker-tidb:
|
2018-12-18 18:38:30 +01:00
|
|
|
scripts/docker-build.sh tidb $(TIDB_VERSION)
|
|
|
|
scripts/docker-push.sh tidb $(TIDB_VERSION)
|
2019-05-09 06:18:22 +02:00
|
|
|
lint-js:
|
|
|
|
(cd frontend && npm run lint)
|
|
|
|
fmt-js:
|
|
|
|
(cd frontend && npm run fmt)
|
|
|
|
fmt-go:
|
2018-11-14 23:55:23 +01:00
|
|
|
goimports -w internal cmd
|
|
|
|
go fmt ./internal/... ./cmd/...
|
2019-04-26 02:22:53 +02:00
|
|
|
tidy:
|
|
|
|
go mod tidy
|
2019-05-09 06:18:22 +02:00
|
|
|
upgrade-js:
|
|
|
|
(cd frontend && npm update --depth 1)
|
|
|
|
upgrade-go:
|
2018-12-18 18:38:30 +01:00
|
|
|
go mod tidy
|
2019-04-18 06:33:34 +02:00
|
|
|
go get -u
|