INSTALL.md
3.69 KB
Installation de Plan De Charge
Prérequis
- python3
- sqlite ( pour le développement et les tests unitaires )
- chrome-driver et chromium ( pour les tests unitaires)
- postgresql ou mysql/mariadb ( pour la production )
Obtenir un répertoire fonctionnel
export GIT_SSL_NO_VERIFY=1
git clone https://gitlab.irap.omp.eu/PDC-IRAP/pdc-web.git
cd pdc-web
git checkout dev # éventuellement travailler avec la branche la plus à jour
Installer l'environment python
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
Configurer l'application
# D'abord les accès base de donnée
cp resources/pdc_config.py .
$(EDITOR) pdc_config.py
cp resources/db_config.py .
$(EDITOR) db_config.py
# Ensuite l'application elle même (ce fichier est utilisable tel quel)
cp resources/flaskenv .flaskenv
$(EDITOR) .flaskenv
Créer la base de données
Utiliser l'outil de ligne de commande fourni avec l'application.
flask pdc_db --help
# créer la structure de la base
flask pdc_db create_db
# renseigner des agent depuis une base type lesia
flask pdc_db feed_from_lesia
# entrer des périodes
# ( inutile s'il y a eu un import Lesia)
flask pdc_db feed_periods
# entrer des charges aléatoires (une centaine)
# ( inutile s'il y a eu un import Lesia)
flask pdc_db feed_random_charges
Jouer les tests et exécuter un serveur local
pip install -r requirements-tests.txt
PYTHONPATH=. pytest
# éventuellement voir le taux de couverture
PYTHONPATH=. pytest --cov=app --cov-report=xml:"coverage.xml" --cov-report=term --junitxml "tests-report.xml"
# ouvrir un serveur sur localhost:5000
flask run
Configurer l'appli web avec apache
Les fichiers concernés:
- pdc_web.wsgi
- pdc_config.py
- db_config.py
La procédure:
# créer le répertoire pour le web
export WEB_DIR=/var/www/html/pdc-web
mkdir $WEB_DIR
# le peupler avec le code
export GIT_DIR=/path/to/pdc_web/.git
export GIT_BRANCH=master
git --work-tree=$WEB_DIR --git-dir=$GIT_DIR checkout -f $GIT_BRANCH
# le configurer : cf plus haut "Obtenir un répertoire fonctionnel"
cd $WEB_DIR
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
$(EDITOR) pdc_config.py db_config.py .flaskenv
# configurer le serveur web
cp ./resources/apache2-virtual-host.conf /etc/apache2/sites-available/pdc-web.conf
$(EDITOR) /etc/apache2/sites-available/pdc-web.conf
a2ensite pdc-web
apachectl restart
Mise à jour
git autodeploy
Les fichiers concernés:
- scripts/post-deploy.sh
- resources/post-receive.git-hook
La procédure:
git --work-tree=/var/www/html/pdc-web --git-dir=/path/to/the/repo.git checkout -f master
# make bare repo
git clone --bare /path/to/the/repo.git
# put on hook
cp /path/to/working-directory/resources/post-receive.git-hook repo.git/hooks/post-receive
$(EDITOR) repo.git/hooks/post-receive
git push to repo
Intégration Pycharm
Ce projet utilisant le pattern "factory", il faut procéder à quelques configuration afin de le faire tourner avec pycharm.
Pour une procédure détaillée, voir la page:
https://flask.palletsprojects.com/en/1.1.x/cli/#pycharm-integration
Dans le menu 'Edit Configurations', changer les champs:
- 'module name' positionné à 'flask'
- et dans le champs 'Parameters' choisir 'run'
Normalement, cette configuration permet de lire les variables positionées dans le fichier .flaskenv
FLASK_ENV=development
FLASK_APP=pdc_web
Ainsi fait, exécutez votre projet depuis pycharm et testez.