ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) IMAGE_TAG=registry.gitlab.teklia.com/arkindex/backend .PHONY: all release services all: clean build base: require-version VERSION=$(version) CI_PROJECT_DIR=$(ROOT_DIR) CI_REGISTRY_IMAGE=$(IMAGE_TAG) $(ROOT_DIR)/ci/build-base.sh clean: rm -rf *.egg-info build dist .eggs find . -name '*.pyc' -exec rm {} \; build: CI_PROJECT_DIR=$(ROOT_DIR) CI_REGISTRY_IMAGE=$(IMAGE_TAG) $(ROOT_DIR)/ci/build.sh worker: arkindex rqworker -v 2 default high tasks test-fixtures: $(eval export PGPASSWORD=devdata) psql -h 127.0.0.1 -p 5432 -U devuser -c 'ALTER DATABASE arkindex_dev RENAME TO arkindex_tmp_fixtures' template1 psql -h 127.0.0.1 -p 5432 -U devuser -c 'CREATE DATABASE arkindex_dev' template1 # A "try...finally" block in a Makefile: ensure we bring back the dev database even when test-fixtures fails -$(MAKE) test-fixtures-run $(MAKE) test-fixtures-restore test-fixtures-run: arkindex migrate arkindex build_fixtures arkindex dumpdata --indent 4 process documents images users auth ponos training > arkindex/documents/fixtures/data.json test-fixtures-restore: # This first renaming ensures that arkindex_tmp_fixtures exists; we don't want to drop arkindex_dev without a backup psql -h 127.0.0.1 -p 5432 -U devuser -c 'ALTER DATABASE arkindex_tmp_fixtures RENAME TO arkindex_dev_replace' template1 psql -h 127.0.0.1 -p 5432 -U devuser -c 'DROP DATABASE arkindex_dev' template1 psql -h 127.0.0.1 -p 5432 -U devuser -c 'ALTER DATABASE arkindex_dev_replace RENAME TO arkindex_dev' template1 require-version: @if [ ! "$(version)" ]; then echo "Missing version to publish"; exit 1; fi @git rev-parse $(version) >/dev/null 2>&1 && (echo "Version $(version) already exists on local git repo !" && exit 1) || true schema: arkindex spectacular --fail-on-warn --validate --file schema.yml release: $(eval version:=$(shell cat VERSION)) echo $(version) git commit VERSION -m "Version $(version)" git tag $(version) git push origin master $(version) clean-docker: $(eval containers:=$(shell docker ps -a -q)) @if [ -n "$(containers)" ]; then \ echo "Cleaning up past containers\n" \ docker rm -f $(containers) ; \ fi stack: docker/ssl/ark-cert.pem docker compose -p arkindex up --build services: docker/ssl/ark-cert.pem docker compose -p arkindex -f docker/docker-compose.services.yml up docker/ssl/ark-cert.pem: $(eval export CAROOT=$(ROOT_DIR)/docker/ssl) mkcert -install mkcert -cert-file=$(ROOT_DIR)/docker/ssl/ark-cert.pem -key-file=$(ROOT_DIR)/docker/ssl/ark-key.pem ark.localhost *.ark.localhost *.iiif.ark.localhost