Site web d'Orange County Lettings
- Compte GitHub avec accès en lecture à ce repository
- Git CLI
- SQLite3 CLI
- Interpréteur Python, version 3.6 ou supérieure
Dans le reste de la documentation sur le développement local, il est supposé que la commande python
de votre OS shell exécute l'interpréteur Python ci-dessus (à moins qu'un environnement virtuel ne soit activé).
cd /path/to/put/project/in
git clone https://github.com/OpenClassrooms-Student-Center/Python-OC-Lettings-FR.git
cd /path/to/Python-OC-Lettings-FR
python -m venv venv
apt-get install python3-venv
(Si l'étape précédente comporte des erreurs avec un paquet non trouvé sur Ubuntu)- Activer l'environnement
source venv/bin/activate
- Confirmer que la commande
python
exécute l'interpréteur Python dans l'environnement virtuelwhich python
- Confirmer que la version de l'interpréteur Python est la version 3.6 ou supérieure
python --version
- Confirmer que la commande
pip
exécute l'exécutable pip dans l'environnement virtuel,which pip
- Pour désactiver l'environnement,
deactivate
cd /path/to/Python-OC-Lettings-FR
source venv/bin/activate
pip install --requirement requirements.txt
python manage.py runserver
- Aller sur
http://localhost:8000
dans un navigateur. - Confirmer que le site fonctionne et qu'il est possible de naviguer (vous devriez voir plusieurs profils et locations).
cd /path/to/Python-OC-Lettings-FR
source venv/bin/activate
flake8
cd /path/to/Python-OC-Lettings-FR
source venv/bin/activate
pytest
cd /path/to/Python-OC-Lettings-FR
- Ouvrir une session shell
sqlite3
- Se connecter à la base de données
.open oc-lettings-site.sqlite3
- Afficher les tables dans la base de données
.tables
- Afficher les colonnes dans le tableau des profils,
pragma table_info(Python-OC-Lettings-FR_profile);
- Lancer une requête sur la table des profils,
select user_id, favorite_city from Python-OC-Lettings-FR_profile where favorite_city like 'B%';
.quit
pour quitter
- Aller sur
http://localhost:8000/admin
- Connectez-vous avec l'utilisateur
admin
, mot de passeAbc1234!
Utilisation de PowerShell, comme ci-dessus sauf :
- Pour activer l'environnement virtuel,
.\venv\Scripts\Activate.ps1
- Remplacer
which <my-command>
par(Get-Command <my-command>).Path
Le repository suit un flow CI/CD via CircleCI:
- Lancement des tests avec
pytest
et du linter avecFlake8
. - Si les tests ne retournent pas d'erreur:
- Build de l'image Docker
- Push de l'image vers Docker Hub
- Si les actions Docker réussissent:
- Déploiement sur Heroku
Tout le processus est automatique sur push au repo GitHub.
Sur la branche main
, toutes les étapes sont effectuées jusqu'au déploiement Heroku.
Sur les autres branches, seuls les tests sont effectués.
La configuration du workflow CircleCI se trouve dans le fichier .circleci/config.yml. La configuration de l'image Docker dans le fichier Dockerfile.
Docker Hub: https://hub.docker.com/r/matspider/oc_lettings Heroku: https://oclettings-matspyder.herokuapp.com/
Pour tirer l'image de Docker Hub et l'éxécuter localement:
docker run -it --env-file ./.env -p 8000:8000 matspider/oc_lettings
Le site sera servi sur http://127.0.0.1:8000.