# Utilitaires shell pour Esup-Pod # Ne pas oublier de lancer un `workon django_pod` avant toute commande. # Lancer via `make $cmd` # (en remplacant $cmd par une commande ci-dessous) # Affiche la liste des commandes disponibles help: @echo "Syntax: [make target] where target is in this list:" @awk '/^#/{c=substr($$0,3);next}c&&/^[[:alpha:]][[:alnum:]_-]+:/{print substr($$1,1,index($$1,":")),c}1{c=0}' $(MAKEFILE_LIST) | column -s: -t # Démarre le serveur de test start: (sleep 15 ; open http://pod.localhost:8000) & python3 manage.py runserver pod.localhost:8000 --insecure # --insecure let serve static files even when DEBUG=False # Démarre le serveur de test en https auto-signé starts: # nécessite les django-extensions # cf https://timonweb.com/django/https-django-development-server-ssl-certificate/ (sleep 15 ; open https://pod.localhost:8000) & python3 manage.py runserver_plus pod.localhost:8000 --cert-file cert.pem --key-file key.pem # Première installation de pod (BDD SQLite intégrée) install: npm install -g yarn cd pod; yarn make upgrade make createDB # Mise à jour de Pod upgrade: git pull origin master python3 -m pip install -r requirements.txt make updatedb make migrate make statics # Création des données initiales dans la BDD SQLite intégrée createDB: find . -path "*/migrations/*.py" -not -name "__init__.py" -delete find . -path "*/migrations/*.pyc" -delete make updatedb make migrate python3 manage.py loaddata initial_data # Mise à jour des fichiers de langue lang: echo "Processing python files..." python3 manage.py makemessages --all -i "opencast-studio/*" -i "pod/custom/*" --add-location=file echo "Processing javascript files..." python3 manage.py makemessages -d djangojs -l fr -l nl -i "*.min.js" -i "pod/static/*" -i "opencast-studio/*" -i "*/node_modules/*" -i "node_modules/*" -i "pod/custom/*" --add-location=file #compilation des fichiers de langue compilelang: python3 manage.py compilemessages -l fr -l nl # Look for changes to apply in DB updatedb: python3 manage.py makemigrations # Apply all changes in DB migrate: python3 manage.py migrate # Launch all unit tests. tests: coverage run manage.py test --settings=pod.main.test_settings coverage html # Ensure coherence of all code style pystyle: flake8 # Collects all static files inside all apps and put a copy inside the static directory declared in settings.py statics: cd pod; yarn install; yarn upgrade # --clear Clear the existing files before trying to copy or link the original file. python3 manage.py collectstatic --clear # Generate configuration docs in .MD format createconfigs: python3 manage.py createconfiguration fr python3 manage.py createconfiguration en # -- Docker # Use for docker run and docker exec commands -include .env.dev export COMPOSE = docker compose -f ./docker-compose-dev-with-volumes.yml -p esup-pod COMPOSE_FULL = docker compose -f ./docker-compose-full-dev-with-volumes.yml -p esup-pod COMPOSE_FULL_TEST = docker compose -f ./docker-compose-full-dev-with-volumes-test.yml -p esup-pod DOCKER_LOGS = docker logs -f #docker-start-build: # # Démarre le serveur de test en recompilant les conteneurs de la stack # # (Attention, il a été constaté que sur un mac, le premier lancement peut prendre plus de 5 minutes.) # @$(COMPOSE) up --build # # Vous devriez obtenir ce message une fois esup-pod lancé # # $ pod-dev-with-volumes | Superuser created successfully. # Display app logs (follow mode) docker-logs: @$(DOCKER_LOGS) pod-dev-with-volumes # Display environment variables for docker echo-env: @echo ELASTICSEARCH_TAG=$(ELASTICSEARCH_TAG) @echo PYTHON_TAG=$(PYTHON_TAG) @echo DOCKER_ENV=$(DOCKER_ENV) # Démarre le serveur de test en recompilant les conteneurs de la stack docker-build: # (Attention, il a été constaté que sur un mac, le premier lancement peut prendre plus de 5 minutes.) # N'oubliez pas de supprimer : # sudo rm -rf ./pod/log sudo rm -rf ./pod/log # sudo rm -rf ./pod/static sudo rm -rf ./pod/static # sudo rm -rf ./pod/node_modules sudo rm -rf ./pod/node_modules ifeq ($(DOCKER_ENV), full) @$(COMPOSE_FULL) build --build-arg ELASTICSEARCH_VERSION=$(ELASTICSEARCH_TAG) --build-arg NODE_VERSION=$(NODE_TAG) --build-arg PYTHON_VERSION=$(PYTHON_TAG) --no-cache @$(COMPOSE_FULL) up else ifeq ($(DOCKER_ENV), full-test) @$(COMPOSE_FULL_TEST) build --build-arg ELASTICSEARCH_VERSION=$(ELASTICSEARCH_TAG) --build-arg NODE_VERSION=$(NODE_TAG) --build-arg PYTHON_VERSION=$(PYTHON_TAG) --no-cache @$(COMPOSE_FULL_TEST) up else @$(COMPOSE) build --build-arg ELASTICSEARCH_VERSION=$(ELASTICSEARCH_TAG) --build-arg NODE_VERSION=$(NODE_TAG) --build-arg PYTHON_VERSION=$(PYTHON_TAG) --no-cache @$(COMPOSE) up endif # Vous devriez obtenir ce message une fois esup-pod lancé # $ pod-dev-with-volumes | Superuser created successfully. # Démarre le serveur de test docker-start: # (Attention, il a été constaté que sur un mac, le premier lancement peut prendre plus de 5 minutes.) ifeq ($(DOCKER_ENV), full) @$(COMPOSE_FULL) up else ifeq ($(DOCKER_ENV), full-test) @$(COMPOSE_FULL_TEST) up else @$(COMPOSE) up endif # Vous devriez obtenir ce message une fois esup-pod lancé # $ pod-dev-with-volumes | Superuser created successfully. # Arrête le serveur de test docker-stop: ifeq ($(DOCKER_ENV), full) @$(COMPOSE_FULL) down -v else ifeq ($(DOCKER_ENV), full-test) @$(COMPOSE_FULL_TEST) down -v else @$(COMPOSE) down -v endif # Arrête le serveur de test et supprime les fichiers générés docker-reset: ifeq ($(DOCKER_ENV), full) @$(COMPOSE_FULL) down -v else ifeq ($(DOCKER_ENV), full-test) @$(COMPOSE_FULL_TEST) down -v else @$(COMPOSE) down -v endif # Supprime les fichiers générés. sudo rm -rf ./pod/log sudo rm -rf ./pod/static sudo rm -rf ./pod/node_modules sudo rm -rf ./pod/db_migrations sudo rm -rf ./pod/db.sqlite3 sudo rm -rf ./pod/db_remote.sqlite3 sudo rm -rf ./pod/media