Skip to content
Snippets Groups Projects
Makefile 2.57 KiB
Newer Older
ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
Erwan Rouchet's avatar
Erwan Rouchet committed
IMAGE_TAG=registry.gitlab.teklia.com/arkindex/backend
Bastien Abadie's avatar
Bastien Abadie committed
.PHONY: all release services
Bastien Abadie's avatar
Bastien Abadie committed
base: require-version
Erwan Rouchet's avatar
Erwan Rouchet committed
	VERSION=$(version) CI_PROJECT_DIR=$(ROOT_DIR) CI_REGISTRY_IMAGE=$(IMAGE_TAG) $(ROOT_DIR)/ci/build-base.sh
Bastien Abadie's avatar
Bastien Abadie committed

Bastien Abadie's avatar
Bastien Abadie committed
clean:
	rm -rf *.egg-info build dist .eggs
	find . -name '*.pyc' -exec rm {} \;

Bastien Abadie's avatar
Bastien Abadie committed
	CI_PROJECT_DIR=$(ROOT_DIR) CI_REGISTRY_IMAGE=$(IMAGE_TAG) $(ROOT_DIR)/ci/build.sh
worker:
	arkindex rqworker -v 2 default high tasks
Erwan Rouchet's avatar
Erwan Rouchet committed
test-fixtures:
	$(eval export PGPASSWORD=devdata)
Bastien Abadie's avatar
Bastien Abadie committed
	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
Bastien Abadie's avatar
Bastien Abadie committed
	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
	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

Bastien Abadie's avatar
Bastien Abadie committed
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