2018-09-05 20:26:03 +02:00
|
|
|
export GO111MODULE=on
|
2020-08-18 00:45:53 +02:00
|
|
|
|
2022-05-16 20:46:34 +02:00
|
|
|
-include .env
|
|
|
|
export
|
|
|
|
|
2018-10-31 07:14:33 +01:00
|
|
|
GOIMPORTS=goimports
|
2018-09-05 20:26:03 +02:00
|
|
|
BINARY_NAME=photoprism
|
|
|
|
|
2022-02-19 15:32:52 +01:00
|
|
|
# Build Parameters
|
|
|
|
BUILD_PATH ?= $(shell realpath "./build")
|
|
|
|
BUILD_DATE ?= $(shell date -u +%y%m%d)
|
|
|
|
BUILD_VERSION ?= $(shell git describe --always)
|
|
|
|
BUILD_TAG ?= $(BUILD_DATE)-$(BUILD_VERSION)
|
|
|
|
BUILD_OS ?= $(shell uname -s)
|
|
|
|
BUILD_ARCH ?= $(shell scripts/dist/arch.sh)
|
|
|
|
JS_BUILD_PATH ?= $(shell realpath "./assets/static/build")
|
|
|
|
|
|
|
|
# Installation Parameters
|
|
|
|
INSTALL_PATH ?= $(BUILD_PATH)/photoprism-$(BUILD_TAG)-$(shell echo $(BUILD_OS) | tr '[:upper:]' '[:lower:]')-$(BUILD_ARCH)
|
|
|
|
DESTDIR ?= $(INSTALL_PATH)
|
|
|
|
DESTUID ?= 1000
|
|
|
|
DESTGID ?= 1000
|
|
|
|
INSTALL_USER ?= $(DESTUID):$(DESTGID)
|
|
|
|
INSTALL_MODE ?= u+rwX,a+rX
|
|
|
|
INSTALL_MODE_BIN ?= 755
|
|
|
|
|
2021-02-14 19:15:29 +01:00
|
|
|
UID := $(shell id -u)
|
2022-02-21 11:21:58 +01:00
|
|
|
GID := $(shell id -g)
|
2019-06-03 16:31:15 +02:00
|
|
|
HASRICHGO := $(shell which richgo)
|
2020-08-18 00:45:53 +02:00
|
|
|
|
2019-06-03 16:31:15 +02:00
|
|
|
ifdef HASRICHGO
|
|
|
|
GOTEST=richgo test
|
|
|
|
else
|
|
|
|
GOTEST=go test
|
|
|
|
endif
|
|
|
|
|
2022-02-21 11:21:58 +01:00
|
|
|
all: dep build-js
|
2022-02-19 15:32:52 +01:00
|
|
|
dep: dep-tensorflow dep-npm dep-js dep-go
|
2022-02-21 11:21:58 +01:00
|
|
|
build: build-go
|
2020-05-23 20:58:58 +02:00
|
|
|
test: test-js test-go
|
2022-04-18 15:49:30 +02:00
|
|
|
test-go: reset-sqlite run-test-go
|
|
|
|
test-pkg: reset-sqlite run-test-pkg
|
|
|
|
test-api: reset-sqlite run-test-api
|
|
|
|
test-short: reset-sqlite run-test-short
|
2022-04-04 14:41:14 +02:00
|
|
|
test-mariadb: reset-acceptance run-test-mariadb
|
2022-07-23 11:41:39 +02:00
|
|
|
acceptance-auth-run-chromium: storage/acceptance acceptance-auth-sqlite-restart acceptance-auth acceptance-auth-sqlite-stop
|
|
|
|
acceptance-public-run-chromium: storage/acceptance acceptance-sqlite-restart acceptance acceptance-sqlite-stop
|
|
|
|
acceptance-auth-run-firefox: storage/acceptance acceptance-auth-sqlite-restart acceptance-auth-firefox acceptance-auth-sqlite-stop
|
|
|
|
acceptance-public-run-firefox: storage/acceptance acceptance-sqlite-restart acceptance-firefox acceptance-sqlite-stop
|
|
|
|
acceptance-run-chromium-short: storage/acceptance acceptance-auth-sqlite-restart acceptance-auth-short acceptance-auth-sqlite-stop acceptance-sqlite-restart acceptance-short acceptance-sqlite-stop
|
|
|
|
acceptance-run-chromium: storage/acceptance acceptance-auth-sqlite-restart acceptance-auth acceptance-auth-sqlite-stop acceptance-sqlite-restart acceptance acceptance-sqlite-stop
|
|
|
|
acceptance-run-firefox: storage/acceptance acceptance-auth-sqlite-restart acceptance-auth-firefox acceptance-auth-sqlite-stop acceptance-sqlite-restart acceptance-firefox acceptance-sqlite-stop
|
2021-01-15 17:08:33 +01:00
|
|
|
test-all: test acceptance-run-chromium
|
2021-08-14 18:18:25 +02:00
|
|
|
fmt: fmt-js fmt-go
|
2021-01-07 18:51:56 +01:00
|
|
|
clean-local: clean-local-config clean-local-cache
|
2022-02-19 15:32:52 +01:00
|
|
|
upgrade: dep-upgrade-js dep-upgrade
|
|
|
|
devtools: install-go dep-npm
|
2022-03-28 15:57:29 +02:00
|
|
|
.SILENT: help;
|
2022-04-18 15:49:30 +02:00
|
|
|
logs:
|
|
|
|
docker-compose logs -f
|
2022-03-28 15:57:29 +02:00
|
|
|
help:
|
|
|
|
@echo "For build instructions, visit <https://docs.photoprism.app/developer-guide/>."
|
2022-02-21 11:21:58 +01:00
|
|
|
fix-permissions:
|
|
|
|
$(info Updating filesystem permissions...)
|
|
|
|
@if [ $(UID) != 0 ]; then\
|
|
|
|
echo "Running \"chown --preserve-root -Rcf $(UID):$(GID) /go /photoprism /opt/photoprism /tmp/photoprism\". Please wait."; \
|
|
|
|
sudo chown --preserve-root -Rcf $(UID):$(GID) /go /photoprism /opt/photoprism /tmp/photoprism || true;\
|
2022-08-28 15:30:23 +02:00
|
|
|
echo "Running \"chmod --preserve-root -Rcf u+rwX /go/src/github.com/photoprism/* /photoprism /opt/photoprism /tmp/photoprism\". Please wait.";\
|
2022-02-21 11:21:58 +01:00
|
|
|
sudo chmod --preserve-root -Rcf u+rwX /go/src/github.com/photoprism/photoprism/* /photoprism /opt/photoprism /tmp/photoprism || true;\
|
|
|
|
echo "Done."; \
|
|
|
|
else\
|
|
|
|
echo "Running as root. Nothing to do."; \
|
|
|
|
fi
|
2022-02-19 15:32:52 +01:00
|
|
|
clean:
|
|
|
|
rm -f *.log .test*
|
2022-02-19 17:13:55 +01:00
|
|
|
[ ! -f "$(BINARY_NAME)" ] || rm -f $(BINARY_NAME)
|
2022-02-19 15:32:52 +01:00
|
|
|
[ ! -d "node_modules" ] || rm -rf node_modules
|
|
|
|
[ ! -d "frontend/node_modules" ] || rm -rf frontend/node_modules
|
|
|
|
[ ! -d "$(BUILD_PATH)" ] || rm -rf --preserve-root $(BUILD_PATH)
|
|
|
|
[ ! -d "$(JS_BUILD_PATH)" ] || rm -rf --preserve-root $(JS_BUILD_PATH)
|
2022-02-19 17:13:55 +01:00
|
|
|
tar.gz:
|
|
|
|
$(info Creating tar.gz archives from the directories in "$(BUILD_PATH)"...)
|
|
|
|
find "$(BUILD_PATH)" -maxdepth 1 -mindepth 1 -type d -exec tar --exclude='.[^/]*' -C {} -czf {}.tar.gz . \;
|
2022-02-19 15:32:52 +01:00
|
|
|
install:
|
|
|
|
$(info Installing in "$(DESTDIR)"...)
|
2022-04-22 18:46:16 +02:00
|
|
|
@[ ! -d "$(DESTDIR)" ] || (echo "ERROR: Install path '$(DESTDIR)' already exists!"; exit 1)
|
2022-02-19 15:32:52 +01:00
|
|
|
mkdir --mode=$(INSTALL_MODE) -p $(DESTDIR)
|
|
|
|
env TMPDIR="$(BUILD_PATH)" ./scripts/dist/install-tensorflow.sh $(DESTDIR)
|
|
|
|
rm -rf --preserve-root $(DESTDIR)/include
|
2022-03-17 17:02:38 +01:00
|
|
|
(cd $(DESTDIR) && mkdir -p bin sbin lib assets config config/examples)
|
2022-03-01 13:55:05 +01:00
|
|
|
./scripts/build.sh prod "$(DESTDIR)/bin/$(BINARY_NAME)"
|
2022-07-23 14:57:17 +02:00
|
|
|
GOBIN="$(DESTDIR)/sbin" go install github.com/tianon/gosu@latest
|
2022-02-19 15:32:52 +01:00
|
|
|
rsync -r -l --safe-links --exclude-from=assets/.buildignore --chmod=a+r,u+rw ./assets/ $(DESTDIR)/assets
|
2022-05-16 20:51:02 +02:00
|
|
|
wget -O $(DESTDIR)/assets/static/img/wallpaper/welcome.jpg https://cdn.photoprism.app/wallpaper/welcome.jpg
|
2022-07-07 19:12:28 +02:00
|
|
|
wget -O $(DESTDIR)/assets/static/img/preview.jpg https://cdn.photoprism.app/img/preview.jpg
|
2022-03-11 10:30:18 +01:00
|
|
|
cp scripts/dist/heif-convert.sh $(DESTDIR)/bin/heif-convert
|
2022-02-19 15:32:52 +01:00
|
|
|
cp internal/config/testdata/*.yml $(DESTDIR)/config/examples
|
|
|
|
chown -R $(INSTALL_USER) $(DESTDIR)
|
|
|
|
chmod -R $(INSTALL_MODE) $(DESTDIR)
|
2022-03-11 10:30:18 +01:00
|
|
|
chmod -R $(INSTALL_MODE_BIN) $(DESTDIR)/bin $(DESTDIR)/lib
|
2022-03-01 13:55:05 +01:00
|
|
|
@echo "PhotoPrism $(BUILD_TAG) has been successfully installed in \"$(DESTDIR)\".\nEnjoy!"
|
2022-02-19 15:32:52 +01:00
|
|
|
install-go:
|
|
|
|
sudo scripts/dist/install-go.sh
|
|
|
|
go build -v ./...
|
|
|
|
install-tensorflow:
|
|
|
|
sudo scripts/dist/install-tensorflow.sh
|
|
|
|
install-darktable:
|
|
|
|
sudo scripts/dist/install-darktable.sh
|
2022-07-14 13:51:32 +02:00
|
|
|
acceptance-sqlite-restart:
|
2020-06-05 18:04:37 +02:00
|
|
|
cp -f storage/acceptance/backup.db storage/acceptance/index.db
|
2022-07-14 13:51:32 +02:00
|
|
|
cp -f storage/acceptance/config-sqlite/settingsBackup.yml storage/acceptance/config-sqlite/settings.yml
|
2021-02-17 15:51:21 +01:00
|
|
|
rm -rf storage/acceptance/sidecar/2020
|
|
|
|
rm -rf storage/acceptance/sidecar/2011
|
2020-06-05 18:04:37 +02:00
|
|
|
rm -rf storage/acceptance/originals/2010
|
2021-02-07 13:10:46 +01:00
|
|
|
rm -rf storage/acceptance/originals/2020
|
|
|
|
rm -rf storage/acceptance/originals/2011
|
2020-06-05 18:04:37 +02:00
|
|
|
rm -rf storage/acceptance/originals/2013
|
2020-10-20 18:10:38 +02:00
|
|
|
rm -rf storage/acceptance/originals/2017
|
2022-07-14 13:51:32 +02:00
|
|
|
./photoprism -p -c "./storage/acceptance/config-sqlite" --test start -d
|
|
|
|
acceptance-sqlite-stop:
|
|
|
|
./photoprism -p -c "./storage/acceptance/config-sqlite" --test stop
|
|
|
|
acceptance-auth-sqlite-restart:
|
2021-08-13 21:21:03 +02:00
|
|
|
cp -f storage/acceptance/backup.db storage/acceptance/index.db
|
2022-07-14 13:51:32 +02:00
|
|
|
cp -f storage/acceptance/config-sqlite/settingsBackup.yml storage/acceptance/config-sqlite/settings.yml
|
|
|
|
./photoprism --auth-mode "passwd" -c "./storage/acceptance/config-sqlite" --test start -d
|
|
|
|
acceptance-auth-sqlite-stop:
|
|
|
|
./photoprism --auth-mode "passwd" -c "./storage/acceptance/config-sqlite" --test stop
|
2019-05-09 06:18:22 +02:00
|
|
|
start:
|
2022-04-15 15:45:39 +02:00
|
|
|
./photoprism start -d
|
2019-06-30 05:38:39 +02:00
|
|
|
stop:
|
2022-04-15 15:45:39 +02:00
|
|
|
./photoprism stop
|
2019-09-19 18:22:44 +02:00
|
|
|
terminal:
|
2021-01-15 15:02:06 +01:00
|
|
|
docker-compose exec -u $(UID) photoprism bash
|
2022-03-16 19:09:53 +01:00
|
|
|
rootshell: root-terminal
|
2020-10-08 08:52:03 +02:00
|
|
|
root-terminal:
|
|
|
|
docker-compose exec -u root photoprism bash
|
2019-05-09 06:18:22 +02:00
|
|
|
migrate:
|
2022-04-01 16:02:58 +02:00
|
|
|
go run cmd/photoprism/photoprism.go migrations run
|
2020-01-13 11:08:50 +01:00
|
|
|
generate:
|
|
|
|
go generate ./pkg/... ./internal/...
|
|
|
|
go fmt ./pkg/... ./internal/...
|
2022-03-30 13:41:07 +02:00
|
|
|
# revert unnecessary pot file change
|
2022-08-24 12:39:23 +02:00
|
|
|
# POT_UNCHANGED='1 file changed, 1 insertion(+), 1 deletion(-)'
|
|
|
|
# @if [ ${$(shell git diff --shortstat assets/locales/messages.pot):1:45} == $(POT_UNCHANGED) ]; then\
|
|
|
|
# git checkout -- assets/locales/messages.pot;\
|
|
|
|
# fi
|
2020-05-31 02:09:52 +02:00
|
|
|
clean-local-assets:
|
2022-02-19 15:32:52 +01:00
|
|
|
rm -rf $(BUILD_PATH)/assets/*
|
2020-01-04 10:10:55 +01:00
|
|
|
clean-local-cache:
|
2022-02-19 15:32:52 +01:00
|
|
|
rm -rf $(BUILD_PATH)/storage/cache/*
|
2020-01-04 10:10:55 +01:00
|
|
|
clean-local-config:
|
2022-02-19 15:32:52 +01:00
|
|
|
rm -f $(BUILD_PATH)/config/*
|
2020-08-19 12:01:54 +02:00
|
|
|
dep-list:
|
|
|
|
go list -u -m -json all | go-mod-outdated -direct
|
2022-02-19 15:32:52 +01:00
|
|
|
dep-npm:
|
|
|
|
sudo npm install -g npm
|
2019-05-09 06:18:22 +02:00
|
|
|
dep-js:
|
2022-03-28 10:45:15 +02:00
|
|
|
(cd frontend && npm ci --no-audit)
|
2019-05-09 06:18:22 +02:00
|
|
|
dep-go:
|
|
|
|
go build -v ./...
|
2020-01-12 15:39:45 +01:00
|
|
|
dep-upgrade:
|
|
|
|
go get -u -t ./...
|
|
|
|
dep-upgrade-js:
|
2020-11-02 00:30:26 +01:00
|
|
|
(cd frontend && npm --depth 3 update --legacy-peer-deps)
|
2019-05-09 06:18:22 +02:00
|
|
|
dep-tensorflow:
|
2021-07-16 12:16:56 +02:00
|
|
|
scripts/download-facenet.sh
|
2019-05-09 06:18:22 +02:00
|
|
|
scripts/download-nasnet.sh
|
2019-12-14 15:41:37 +01:00
|
|
|
scripts/download-nsfw.sh
|
2022-07-23 11:40:39 +02:00
|
|
|
dep-acceptance: storage/acceptance
|
|
|
|
storage/acceptance:
|
|
|
|
(cd storage && rm -rf acceptance && wget -c https://dl.photoprism.app/qa/acceptance.tar.gz -O - | tar -xz)
|
2021-07-16 15:17:27 +02:00
|
|
|
zip-facenet:
|
|
|
|
(cd assets && zip -r facenet.zip facenet -x "*/.*" -x "*/version.txt")
|
2019-05-16 08:41:16 +02:00
|
|
|
zip-nasnet:
|
2020-05-31 02:09:52 +02:00
|
|
|
(cd assets && zip -r nasnet.zip nasnet -x "*/.*" -x "*/version.txt")
|
2019-12-14 15:41:37 +01:00
|
|
|
zip-nsfw:
|
2020-05-31 02:09:52 +02:00
|
|
|
(cd assets && zip -r nsfw.zip nsfw -x "*/.*" -x "*/version.txt")
|
2019-05-07 17:02:15 +02:00
|
|
|
build-js:
|
|
|
|
(cd frontend && env NODE_ENV=production npm run build)
|
2022-02-19 15:32:52 +01:00
|
|
|
build-go: build-debug
|
|
|
|
build-debug:
|
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)
|
2022-02-19 15:32:52 +01:00
|
|
|
build-prod:
|
|
|
|
rm -f $(BINARY_NAME)
|
|
|
|
scripts/build.sh prod $(BINARY_NAME)
|
2020-05-28 21:20:42 +02:00
|
|
|
build-race:
|
|
|
|
rm -f $(BINARY_NAME)
|
|
|
|
scripts/build.sh race $(BINARY_NAME)
|
2019-06-22 23:14:30 +02:00
|
|
|
build-static:
|
|
|
|
rm -f $(BINARY_NAME)
|
|
|
|
scripts/build.sh static $(BINARY_NAME)
|
2020-04-28 11:51:42 +02:00
|
|
|
build-tensorflow:
|
|
|
|
docker build -t photoprism/tensorflow:build docker/tensorflow
|
|
|
|
docker run -ti photoprism/tensorflow:build bash
|
|
|
|
build-tensorflow-arm64:
|
|
|
|
docker build -t photoprism/tensorflow:arm64 docker/tensorflow/arm64
|
|
|
|
docker run -ti photoprism/tensorflow:arm64 bash
|
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...)
|
2022-02-19 19:04:45 +01:00
|
|
|
(cd frontend && env NODE_ENV=development BABEL_ENV=test npm run test)
|
2022-07-14 10:19:04 +02:00
|
|
|
acceptance-old:
|
|
|
|
$(info Running JS acceptance tests in Chrome...)
|
|
|
|
(cd frontend && npm run acceptance --first="chromium:headless" --second=plus --third=public && cd ..)
|
2019-12-05 03:58:54 +01:00
|
|
|
acceptance:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running JS acceptance tests in Chrome...)
|
2022-07-14 10:19:04 +02:00
|
|
|
(cd frontend && npm run acceptance --first="chromium:headless" --second="^(Common|Core)\:*" --third=public --fourth="tests/acceptance" && cd ..)
|
|
|
|
acceptance-short:
|
2022-04-15 15:45:39 +02:00
|
|
|
$(info Running JS acceptance tests in Chrome...)
|
2022-07-14 10:19:04 +02:00
|
|
|
(cd frontend && npm run acceptance-short --first="chromium:headless" --second="^(Common|Core)\:*" --third=public --fourth="tests/acceptance" && cd ..)
|
2019-12-05 03:58:54 +01:00
|
|
|
acceptance-firefox:
|
2019-06-03 23:55:01 +02:00
|
|
|
$(info Running JS acceptance tests in Firefox...)
|
2022-07-14 10:19:04 +02:00
|
|
|
(cd frontend && npm run acceptance --first="firefox:headless" --second="^(Common|Core)\:*" --third=public --fourth="tests/acceptance" && cd ..)
|
|
|
|
acceptance-auth:
|
|
|
|
$(info Running JS acceptance-auth tests in Chrome...)
|
|
|
|
(cd frontend && npm run acceptance --first="chromium:headless" --second="^(Common|Core)\:*" --third=auth --fourth="tests/acceptance" && cd ..)
|
|
|
|
acceptance-auth-short:
|
|
|
|
$(info Running JS acceptance-auth tests in Chrome...)
|
|
|
|
(cd frontend && npm run acceptance-short --first="chromium:headless" --second="^(Common|Core)\:*" --third=auth --fourth="tests/acceptance" && cd ..)
|
|
|
|
acceptance-auth-firefox:
|
|
|
|
$(info Running JS acceptance-auth tests in Firefox...)
|
|
|
|
(cd frontend && npm run acceptance --first="firefox:headless" --second="^(Common|Core)\:*" --third=auth --fourth="tests/acceptance" && cd ..)
|
2022-04-18 15:49:30 +02:00
|
|
|
reset-mariadb-testdb:
|
|
|
|
$(info Resetting testdb database...)
|
|
|
|
mysql < scripts/sql/reset-testdb.sql
|
|
|
|
reset-mariadb-local:
|
|
|
|
$(info Resetting local database...)
|
|
|
|
mysql < scripts/sql/reset-local.sql
|
|
|
|
reset-mariadb-acceptance:
|
2022-04-04 14:41:14 +02:00
|
|
|
$(info Resetting acceptance database...)
|
2022-04-18 15:49:30 +02:00
|
|
|
mysql < scripts/sql/reset-acceptance.sql
|
|
|
|
reset-mariadb-photoprism:
|
|
|
|
$(info Resetting photoprism database...)
|
|
|
|
mysql < scripts/sql/reset-photoprism.sql
|
|
|
|
reset-mariadb: reset-mariadb-testdb reset-mariadb-local reset-mariadb-acceptance reset-mariadb-photoprism
|
|
|
|
reset-testdb: reset-sqlite reset-mariadb-testdb
|
|
|
|
reset-acceptance: reset-mariadb-acceptance
|
|
|
|
reset-sqlite:
|
2021-11-09 17:32:51 +01:00
|
|
|
$(info Removing test database files...)
|
2022-02-19 15:32:52 +01:00
|
|
|
find ./internal -type f -name ".test.*" -delete
|
2020-05-23 20:58:58 +02:00
|
|
|
run-test-short:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running short Go tests in parallel mode...)
|
2020-05-23 20:58:58 +02:00
|
|
|
$(GOTEST) -parallel 2 -count 1 -cpu 2 -short -timeout 5m ./pkg/... ./internal/...
|
|
|
|
run-test-go:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running all Go tests...)
|
2020-04-08 13:24:06 +02:00
|
|
|
$(GOTEST) -parallel 1 -count 1 -cpu 1 -tags slow -timeout 20m ./pkg/... ./internal/...
|
2022-04-04 14:41:14 +02:00
|
|
|
run-test-mariadb:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running all Go tests on MariaDB...)
|
2022-04-04 14:41:14 +02:00
|
|
|
PHOTOPRISM_TEST_DRIVER="mysql" PHOTOPRISM_TEST_DSN="root:photoprism@tcp(mariadb:4001)/acceptance?charset=utf8mb4,utf8&collation=utf8mb4_unicode_ci&parseTime=true" $(GOTEST) -parallel 1 -count 1 -cpu 1 -tags slow -timeout 20m ./pkg/... ./internal/...
|
2021-11-11 17:10:52 +01:00
|
|
|
run-test-pkg:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running all Go tests in "/pkg"...)
|
2021-11-11 17:10:52 +01:00
|
|
|
$(GOTEST) -parallel 2 -count 1 -cpu 2 -tags slow -timeout 20m ./pkg/...
|
2021-04-19 12:24:14 +02:00
|
|
|
run-test-api:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running all API tests...)
|
2021-04-19 12:24:14 +02:00
|
|
|
$(GOTEST) -parallel 2 -count 1 -cpu 2 -tags slow -timeout 20m ./internal/api/...
|
2020-04-30 16:43:08 +02:00
|
|
|
test-parallel:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running all Go tests in parallel mode...)
|
2020-04-30 16:43:08 +02:00
|
|
|
$(GOTEST) -parallel 2 -count 1 -cpu 2 -tags slow -timeout 20m ./pkg/... ./internal/...
|
2019-06-04 18:26:35 +02:00
|
|
|
test-verbose:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running all Go tests in verbose mode...)
|
2020-04-08 13:24:06 +02:00
|
|
|
$(GOTEST) -parallel 1 -count 1 -cpu 1 -tags slow -timeout 20m -v ./pkg/... ./internal/...
|
2018-11-06 16:17:49 +01:00
|
|
|
test-race:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running all Go tests with race detection in verbose mode...)
|
2020-04-08 13:24:06 +02:00
|
|
|
$(GOTEST) -tags slow -race -timeout 60m -v ./pkg/... ./internal/...
|
2018-11-06 16:47:17 +01:00
|
|
|
test-codecov:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running all Go tests with code coverage report for codecov...)
|
2020-04-30 17:00:05 +02:00
|
|
|
go test -parallel 1 -count 1 -cpu 1 -failfast -tags slow -timeout 30m -coverprofile coverage.txt -covermode atomic ./pkg/... ./internal/...
|
2020-08-19 08:26:35 +02:00
|
|
|
scripts/codecov.sh -t $(CODECOV_TOKEN)
|
2018-11-06 16:47:17 +01:00
|
|
|
test-coverage:
|
2022-07-06 23:01:54 +02:00
|
|
|
$(info Running all Go tests with code coverage report...)
|
2020-04-30 17:00:05 +02:00
|
|
|
go test -parallel 1 -count 1 -cpu 1 -failfast -tags slow -timeout 30m -coverprofile coverage.txt -covermode atomic ./pkg/... ./internal/...
|
2018-11-14 23:55:23 +01:00
|
|
|
go tool cover -html=coverage.txt -o coverage.html
|
2022-05-20 11:18:19 +02:00
|
|
|
docker-develop: docker-develop-latest
|
|
|
|
docker-develop-all: docker-develop-latest docker-develop-other
|
2022-06-16 10:21:35 +02:00
|
|
|
docker-develop-latest: docker-develop-debian docker-develop-armv7
|
|
|
|
docker-develop-debian: docker-develop-bookworm docker-develop-bookworm-slim
|
|
|
|
docker-develop-ubuntu: docker-develop-jammy
|
2022-08-10 09:07:01 +02:00
|
|
|
docker-develop-other: docker-develop-bullseye docker-develop-bullseye-slim docker-develop-buster docker-develop-jammy
|
2022-03-23 07:51:33 +01:00
|
|
|
docker-develop-bookworm:
|
|
|
|
docker pull --platform=amd64 debian:bookworm-slim
|
|
|
|
docker pull --platform=arm64 debian:bookworm-slim
|
2022-06-16 10:21:35 +02:00
|
|
|
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 bookworm /bookworm "-t photoprism/develop:latest -t photoprism/develop:debian"
|
2022-03-23 07:51:33 +01:00
|
|
|
docker-develop-bookworm-slim:
|
|
|
|
docker pull --platform=amd64 debian:bookworm-slim
|
|
|
|
docker pull --platform=arm64 debian:bookworm-slim
|
|
|
|
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 bookworm-slim /bookworm-slim
|
2022-03-23 13:39:45 +01:00
|
|
|
docker-develop-bullseye:
|
2022-08-09 22:25:27 +02:00
|
|
|
docker pull --platform=amd64 golang:1-bullseye
|
|
|
|
docker pull --platform=arm64 golang:1-bullseye
|
2022-03-23 13:39:45 +01:00
|
|
|
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 bullseye /bullseye
|
|
|
|
docker-develop-bullseye-slim:
|
|
|
|
docker pull --platform=amd64 debian:bullseye-slim
|
|
|
|
docker pull --platform=arm64 debian:bullseye-slim
|
|
|
|
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 bullseye-slim /bullseye-slim
|
2022-02-19 15:53:21 +01:00
|
|
|
docker-develop-armv7:
|
2022-05-16 20:46:34 +02:00
|
|
|
docker pull --platform=arm debian:bookworm-slim
|
2022-02-19 15:53:21 +01:00
|
|
|
scripts/docker/buildx.sh develop linux/arm armv7 /armv7
|
2022-02-16 14:29:42 +01:00
|
|
|
docker-develop-buster:
|
2022-08-09 22:25:27 +02:00
|
|
|
docker pull --platform=amd64 golang:1-buster
|
|
|
|
docker pull --platform=arm64 golang:1-buster
|
2022-02-16 14:29:42 +01:00
|
|
|
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 buster /buster
|
2022-02-16 15:41:58 +01:00
|
|
|
docker-develop-impish:
|
|
|
|
docker pull --platform=amd64 ubuntu:impish
|
|
|
|
docker pull --platform=arm64 ubuntu:impish
|
|
|
|
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 impish /impish
|
2022-04-05 15:31:29 +02:00
|
|
|
docker-develop-jammy:
|
|
|
|
docker pull --platform=amd64 ubuntu:jammy
|
|
|
|
docker pull --platform=arm64 ubuntu:jammy
|
2022-06-16 10:21:35 +02:00
|
|
|
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 jammy /jammy "-t photoprism/develop:ubuntu"
|
2022-05-20 11:18:19 +02:00
|
|
|
docker-preview: docker-preview-latest
|
|
|
|
docker-preview-all: docker-preview-latest docker-preview-other
|
2022-06-16 10:21:35 +02:00
|
|
|
docker-preview-latest: docker-preview-debian
|
|
|
|
docker-preview-debian: docker-preview-bookworm
|
|
|
|
docker-preview-ubuntu: docker-preview-jammy
|
|
|
|
docker-preview-other: docker-preview-bullseye docker-preview-ubuntu
|
2022-02-20 12:31:22 +01:00
|
|
|
docker-preview-arm: docker-preview-arm64 docker-preview-armv7
|
2022-03-23 07:51:33 +01:00
|
|
|
docker-preview-bookworm:
|
|
|
|
docker pull --platform=amd64 photoprism/develop:bookworm
|
|
|
|
docker pull --platform=amd64 photoprism/develop:bookworm-slim
|
|
|
|
docker pull --platform=arm64 photoprism/develop:bookworm
|
|
|
|
docker pull --platform=arm64 photoprism/develop:bookworm-slim
|
2022-06-16 10:21:35 +02:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview /bookworm "-t photoprism/photoprism:preview-debian"
|
2022-02-16 16:24:45 +01:00
|
|
|
docker-preview-armv7:
|
|
|
|
docker pull --platform=arm photoprism/develop:armv7
|
2022-03-23 13:51:34 +01:00
|
|
|
docker pull --platform=arm debian:bookworm-slim
|
2022-02-16 16:24:45 +01:00
|
|
|
scripts/docker/buildx.sh photoprism linux/arm preview-armv7 /armv7
|
2022-02-19 15:53:21 +01:00
|
|
|
docker-preview-arm64:
|
2022-03-23 13:51:34 +01:00
|
|
|
docker pull --platform=arm64 photoprism/develop:bookworm
|
|
|
|
docker pull --platform=arm64 photoprism/develop:bookworm-slim
|
|
|
|
scripts/docker/buildx.sh photoprism linux/arm64 preview-arm64 /bookworm
|
|
|
|
docker-preview-bullseye:
|
|
|
|
docker pull --platform=amd64 photoprism/develop:bullseye
|
|
|
|
docker pull --platform=amd64 photoprism/develop:bullseye-slim
|
2022-02-19 15:53:21 +01:00
|
|
|
docker pull --platform=arm64 photoprism/develop:bullseye
|
2022-02-25 21:46:42 +01:00
|
|
|
docker pull --platform=arm64 photoprism/develop:bullseye-slim
|
2022-03-23 13:51:34 +01:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-bullseye /bullseye
|
2022-02-16 14:29:42 +01:00
|
|
|
docker-preview-buster:
|
2022-02-16 14:48:05 +01:00
|
|
|
docker pull --platform=amd64 photoprism/develop:buster
|
|
|
|
docker pull --platform=arm64 photoprism/develop:buster
|
2022-02-16 16:24:45 +01:00
|
|
|
docker pull --platform=amd64 debian:buster-slim
|
|
|
|
docker pull --platform=arm64 debian:buster-slim
|
2022-02-16 14:29:42 +01:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-buster /buster
|
2022-04-05 15:31:29 +02:00
|
|
|
docker-preview-jammy:
|
|
|
|
docker pull --platform=amd64 photoprism/develop:jammy
|
|
|
|
docker pull --platform=arm64 photoprism/develop:jammy
|
|
|
|
docker pull --platform=amd64 ubuntu:jammy
|
|
|
|
docker pull --platform=arm64 ubuntu:jammy
|
2022-06-16 09:55:43 +02:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-jammy /jammy "-t photoprism/photoprism:preview-ubuntu"
|
2022-02-16 15:41:58 +01:00
|
|
|
docker-preview-impish:
|
2022-04-05 15:31:29 +02:00
|
|
|
docker pull --platform=amd64 photoprism/develop:impish
|
|
|
|
docker pull --platform=arm64 photoprism/develop:impish
|
2022-02-16 16:24:45 +01:00
|
|
|
docker pull --platform=amd64 ubuntu:impish
|
|
|
|
docker pull --platform=arm64 ubuntu:impish
|
2022-02-16 15:41:58 +01:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-impish /impish
|
2022-05-20 11:18:19 +02:00
|
|
|
docker-release: docker-release-latest
|
|
|
|
docker-release-all: docker-release-latest docker-release-other
|
2022-06-16 10:21:35 +02:00
|
|
|
docker-release-latest: docker-release-debian
|
|
|
|
docker-release-debian: docker-release-bookworm
|
|
|
|
docker-release-ubuntu: docker-release-jammy
|
|
|
|
docker-release-other: docker-release-bullseye docker-release-ubuntu
|
2022-02-20 12:31:22 +01:00
|
|
|
docker-release-arm: docker-release-arm64 docker-release-armv7
|
2022-03-23 07:51:33 +01:00
|
|
|
docker-release-bookworm:
|
|
|
|
docker pull --platform=amd64 photoprism/develop:bookworm
|
|
|
|
docker pull --platform=amd64 photoprism/develop:bookworm-slim
|
|
|
|
docker pull --platform=arm64 photoprism/develop:bookworm
|
|
|
|
docker pull --platform=arm64 photoprism/develop:bookworm-slim
|
2022-06-16 10:21:35 +02:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 bookworm /bookworm "-t photoprism/photoprism:latest -t photoprism/photoprism:debian"
|
2022-02-16 16:24:45 +01:00
|
|
|
docker-release-armv7:
|
|
|
|
docker pull --platform=arm photoprism/develop:armv7
|
2022-03-23 13:51:34 +01:00
|
|
|
docker pull --platform=arm debian:bookworm-slim
|
2022-02-16 16:24:45 +01:00
|
|
|
scripts/docker/buildx.sh photoprism linux/arm armv7 /armv7
|
2022-02-19 15:53:21 +01:00
|
|
|
docker-release-arm64:
|
2022-03-23 13:51:34 +01:00
|
|
|
docker pull --platform=arm64 photoprism/develop:bookworm
|
|
|
|
docker pull --platform=arm64 photoprism/develop:bookworm-slim
|
|
|
|
scripts/docker/buildx.sh photoprism linux/arm64 arm64 /bookworm
|
|
|
|
docker-release-bullseye:
|
|
|
|
docker pull --platform=amd64 photoprism/develop:bullseye
|
|
|
|
docker pull --platform=amd64 photoprism/develop:bullseye-slim
|
2022-02-19 15:53:21 +01:00
|
|
|
docker pull --platform=arm64 photoprism/develop:bullseye
|
2022-02-25 21:46:42 +01:00
|
|
|
docker pull --platform=arm64 photoprism/develop:bullseye-slim
|
2022-03-23 13:51:34 +01:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 bullseye /bullseye
|
2022-02-16 14:29:42 +01:00
|
|
|
docker-release-buster:
|
2022-02-16 14:48:05 +01:00
|
|
|
docker pull --platform=amd64 photoprism/develop:buster
|
|
|
|
docker pull --platform=arm64 photoprism/develop:buster
|
2022-02-16 16:24:45 +01:00
|
|
|
docker pull --platform=amd64 debian:buster-slim
|
|
|
|
docker pull --platform=arm64 debian:buster-slim
|
2022-02-16 14:29:42 +01:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 buster /buster
|
2022-04-05 15:59:44 +02:00
|
|
|
docker-release-jammy:
|
2022-04-05 15:31:29 +02:00
|
|
|
docker pull --platform=amd64 photoprism/develop:jammy
|
|
|
|
docker pull --platform=arm64 photoprism/develop:jammy
|
|
|
|
docker pull --platform=amd64 ubuntu:jammy
|
|
|
|
docker pull --platform=arm64 ubuntu:jammy
|
2022-06-16 09:55:43 +02:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 jammy /jammy "-t photoprism/photoprism:ubuntu"
|
2022-02-16 15:41:58 +01:00
|
|
|
docker-release-impish:
|
|
|
|
docker pull --platform=amd64 photoprism/develop:impish
|
|
|
|
docker pull --platform=arm64 photoprism/develop:impish
|
2022-02-16 16:24:45 +01:00
|
|
|
docker pull --platform=amd64 ubuntu:impish
|
|
|
|
docker pull --platform=arm64 ubuntu:impish
|
2022-02-16 15:41:58 +01:00
|
|
|
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 impish /impish
|
2022-04-18 15:49:30 +02:00
|
|
|
start-local:
|
|
|
|
docker-compose -f docker-compose.local.yml up -d
|
|
|
|
stop-local:
|
|
|
|
docker-compose -f docker-compose.local.yml stop
|
2022-03-28 10:58:38 +02:00
|
|
|
docker-local: docker-local-bookworm
|
2022-04-05 17:33:15 +02:00
|
|
|
docker-local-all: docker-local-bookworm docker-local-bullseye docker-local-buster docker-local-jammy
|
2022-03-28 10:58:38 +02:00
|
|
|
docker-local-bookworm:
|
|
|
|
docker pull photoprism/develop:bookworm
|
2022-03-28 11:36:13 +02:00
|
|
|
docker pull photoprism/develop:bookworm-slim
|
2022-04-18 15:49:30 +02:00
|
|
|
scripts/docker/build.sh photoprism bookworm /bookworm "-t photoprism/photoprism:local"
|
2022-03-28 11:36:13 +02:00
|
|
|
docker-local-bullseye:
|
|
|
|
docker pull photoprism/develop:bullseye
|
|
|
|
docker pull photoprism/develop:bullseye-slim
|
2022-04-18 15:49:30 +02:00
|
|
|
scripts/docker/build.sh photoprism bullseye /bullseye "-t photoprism/photoprism:local"
|
2022-03-28 11:36:13 +02:00
|
|
|
docker-local-buster:
|
|
|
|
docker pull photoprism/develop:buster
|
|
|
|
docker pull debian:buster-slim
|
2022-04-18 15:49:30 +02:00
|
|
|
scripts/docker/build.sh photoprism buster /buster "-t photoprism/photoprism:local"
|
2022-04-05 17:33:15 +02:00
|
|
|
docker-local-jammy:
|
|
|
|
docker pull photoprism/develop:jammy
|
|
|
|
docker pull ubuntu:jammy
|
2022-04-18 15:49:30 +02:00
|
|
|
scripts/docker/build.sh photoprism jammy /jammy "-t photoprism/photoprism:local"
|
2022-03-28 11:36:13 +02:00
|
|
|
docker-local-impish:
|
|
|
|
docker pull photoprism/develop:impish
|
|
|
|
docker pull ubuntu:impish
|
2022-04-18 15:49:30 +02:00
|
|
|
scripts/docker/build.sh photoprism impish /impish "-t photoprism/photoprism:local"
|
2022-03-28 11:36:13 +02:00
|
|
|
docker-local-develop: docker-local-develop-bookworm
|
2022-03-28 11:46:52 +02:00
|
|
|
docker-local-develop-all: docker-local-develop-bookworm docker-local-develop-bullseye docker-local-develop-buster docker-local-develop-impish
|
2022-03-28 11:36:13 +02:00
|
|
|
docker-local-develop-bookworm:
|
|
|
|
docker pull debian:bookworm-slim
|
|
|
|
scripts/docker/build.sh develop bookworm /bookworm
|
|
|
|
docker-local-develop-bullseye:
|
2022-08-09 22:25:27 +02:00
|
|
|
docker pull golang:1-bullseye
|
2022-03-28 11:36:13 +02:00
|
|
|
scripts/docker/build.sh develop bullseye /bullseye
|
|
|
|
docker-local-develop-buster:
|
2022-08-09 22:25:27 +02:00
|
|
|
docker pull golang:1-buster
|
2022-03-28 11:36:13 +02:00
|
|
|
scripts/docker/build.sh develop buster /buster
|
|
|
|
docker-local-develop-impish:
|
|
|
|
docker pull ubuntu:impish
|
|
|
|
scripts/docker/build.sh develop impish /impish
|
2021-06-02 11:04:31 +02:00
|
|
|
docker-pull:
|
2021-12-10 12:27:35 +01:00
|
|
|
docker pull photoprism/photoprism:preview photoprism/photoprism:latest
|
2022-01-08 17:53:51 +01:00
|
|
|
docker-ddns:
|
|
|
|
docker pull golang:alpine
|
2022-02-19 15:32:52 +01:00
|
|
|
scripts/docker/buildx-multi.sh ddns linux/amd64,linux/arm64 $(BUILD_DATE)
|
2021-12-09 18:48:44 +01:00
|
|
|
docker-goproxy:
|
2021-12-10 09:02:53 +01:00
|
|
|
docker pull golang:alpine
|
2022-02-19 15:32:52 +01:00
|
|
|
scripts/docker/buildx-multi.sh goproxy linux/amd64,linux/arm64 $(BUILD_DATE)
|
2022-06-17 01:31:03 +02:00
|
|
|
docker-demo: docker-demo-latest
|
|
|
|
docker-demo-all: docker-demo-latest docker-demo-ubuntu
|
2022-06-16 11:23:51 +02:00
|
|
|
docker-demo-latest:
|
|
|
|
docker pull photoprism/photoprism:preview
|
|
|
|
scripts/docker/build.sh demo $(BUILD_DATE)
|
|
|
|
scripts/docker/push.sh demo $(BUILD_DATE)
|
2022-06-16 10:21:35 +02:00
|
|
|
docker-demo-ubuntu:
|
|
|
|
docker pull photoprism/photoprism:preview-ubuntu
|
2022-06-16 10:43:59 +02:00
|
|
|
scripts/docker/build.sh demo ubuntu /ubuntu
|
|
|
|
scripts/docker/push.sh demo ubuntu
|
2020-12-11 23:08:49 +01:00
|
|
|
docker-demo-local:
|
2021-12-10 17:01:45 +01:00
|
|
|
scripts/docker/build.sh photoprism
|
2022-06-16 10:43:59 +02:00
|
|
|
scripts/docker/build.sh demo $(BUILD_DATE) /debian
|
2022-02-19 15:32:52 +01:00
|
|
|
scripts/docker/push.sh demo $(BUILD_DATE)
|
2021-11-09 17:40:53 +01:00
|
|
|
docker-dummy-webdav:
|
2021-06-02 12:25:35 +02:00
|
|
|
docker pull --platform=amd64 golang:1
|
|
|
|
docker pull --platform=arm64 golang:1
|
2022-02-19 15:32:52 +01:00
|
|
|
scripts/docker/buildx-multi.sh dummy-webdav linux/amd64,linux/arm64 $(BUILD_DATE)
|
2021-11-09 17:40:53 +01:00
|
|
|
docker-dummy-oidc:
|
|
|
|
docker pull --platform=amd64 golang:1
|
|
|
|
docker pull --platform=arm64 golang:1
|
2022-02-19 15:32:52 +01:00
|
|
|
scripts/docker/buildx-multi.sh dummy-oidc linux/amd64,linux/arm64 $(BUILD_DATE)
|
2021-08-06 08:57:50 +02:00
|
|
|
packer-digitalocean:
|
|
|
|
$(info Buildinng DigitalOcean marketplace image...)
|
|
|
|
(cd ./docker/examples/cloud && packer build digitalocean.json)
|
2021-09-22 10:34:34 +02:00
|
|
|
drone-sign:
|
|
|
|
drone sign photoprism/photoprism --save
|
2019-05-09 06:18:22 +02:00
|
|
|
lint-js:
|
|
|
|
(cd frontend && npm run lint)
|
|
|
|
fmt-js:
|
|
|
|
(cd frontend && npm run fmt)
|
2020-01-17 01:37:06 +01:00
|
|
|
fmt-go:
|
2020-01-12 14:00:56 +01:00
|
|
|
go fmt ./pkg/... ./internal/... ./cmd/...
|
2022-01-08 12:12:00 +01:00
|
|
|
gofmt -w -s pkg internal cmd
|
2021-08-14 18:18:25 +02:00
|
|
|
goimports -w pkg internal cmd
|
2019-04-26 02:22:53 +02:00
|
|
|
tidy:
|
2022-03-16 17:47:21 +01:00
|
|
|
go mod tidy -go=1.16 && go mod tidy -go=1.17
|
2022-03-28 15:57:29 +02:00
|
|
|
|
2022-02-19 15:32:52 +01:00
|
|
|
.PHONY: all build dev dep-npm dep dep-go dep-js dep-list dep-tensorflow dep-upgrade dep-upgrade-js test test-js test-go \
|
|
|
|
install generate fmt fmt-go fmt-js upgrade start stop terminal root-terminal packer-digitalocean acceptance clean tidy \
|
2022-02-20 12:31:22 +01:00
|
|
|
docker-develop docker-preview docker-preview-all docker-preview-arm docker-release docker-release-all docker-release-arm \
|
2022-07-23 11:40:39 +02:00
|
|
|
install-go install-darktable install-tensorflow devtools tar.gz fix-permissions rootshell help dep-acceptance \
|
2022-03-28 15:57:29 +02:00
|
|
|
docker-local docker-local-all docker-local-bookworm docker-local-bullseye docker-local-buster docker-local-impish \
|
|
|
|
docker-local-develop docker-local-develop-all docker-local-develop-bookworm docker-local-develop-bullseye \
|
2022-04-04 14:41:14 +02:00
|
|
|
docker-local-develop-buster docker-local-develop-impish test-mariadb reset-acceptance run-test-mariadb;
|