Le repo main
contient les 4 projets suivants :
- l'api (Flask)
- le portail pro (React), pour les acteurs culturels
- doc : documentation de l'API pour les partenaires du pass Culture
- maintenance-api : page de maintenance (HTML)
-
Docker
- docker (testé avec 19.03.12)
- docker compose (inclus avec Docker Desktop) (testé avec 1.26.2)
-
NVM (Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
-
- Lancer
nvm install
dans/pro
- Lancer
-
npm install --global yarn
(NPM)- autres méthodes dans la doc de Yarn
-
GPG (outil de (dé)chiffrement)
- GPG Suite (MacOS)
sudo apt install gpg
(Linux)
-
Commitizen (CLI pour écrire des commits au bon format)
pip install -U commitizen
oubrew install commitizen
-
Pour MacOS spécifiquement
- CoreUtils:
brew install coreutils libxmlsec1
- CoreUtils:
-
Pour Linux spécifiquement
- L'API a besoin des paquets suivants, à installer avec
sudo apt install python3-dev libpq-dev xmlsec1 libpango-1.0-0 libpangoft2-1.0-0
pour les distributions Ubuntu
- L'API a besoin des paquets suivants, à installer avec
Il vous faudra une clé SSH sur votre profil GitHub pour pouvoir cloner le repository.
git clone git@github.com:pass-culture/pass-culture-main.git pass-culture-main
cd pass-culture-main
./pc symlink
pc install
Les README de chaque sous-projet détailleront leurs installations spécifiques.
Voici de brèves instructions pour lancer l'API et les différents frontends via le script pc
, qui fait appel à
docker compose. On trouvera dans le README d'api
d'autres
manières de lancer le backend.
pc start-backend
pc sandbox -n industrial
(pour peupler la DB)
Le backend est accessible sur http://localhost:5001/, il est possible d'en tester le fonctionnement par la route http://localhost:5001/health/api.
- http://localhost:5002/ devrait être lancé et fonctionnel après
pc start-backend
, une fois qu'api répond - Cliquez sur Se connecter via Google
- Vous arriverez alors sur la page d'accueil du BO, en tant qu'utilisateur admin
admin@passculture.local
, avec toutes les permissions - Si vous avez besoin d'une adresse email spécifique pour l'admin local, par exemple pour le lien avec des services
externes, spécifiez l'email dans une variable
BACKOFFICE_LOCAL_USER_EMAIL
dans le fichier.env.local.secret
.
pc start-pro
- http://localhost:3001/ devrait être lancé et fonctionnel
- Connectez-vous avec
pctest.admin93.0@example.com
(admin) oupctest.pro93.0@example.com
(non-admin)
Le mot de passe des utilisateurs de la sandbox dans un environnement de développement est : user@AZERTY123
L'environnement de test déployé dans le cloud (testing) utilise un mot de passe secret par souci de protection des données manipulées lors des tests ; en interne, le mot de passe « PRO - testing » est disponible dans le coffre-fort de l'équipe.
Ces utilisateurs existent également pour le 97, en remplaçant 93
par 97
.
D'autres informations sont disponibles sur le README de Pro
Il est possible de lancer / débugger les tests python directement depuis VSCode. Pour cela il faut avoir installé les extensions ms-python.python
et ms-python.debugpy
.
On peut voir la liste des tests dans l'onglet Testing, où l'on peut lancer les tests par fonction / classe / fichier / dossier. Lorsqu'on est dans un fichier de test, on peut également utiliser les icones placées directement à côté de chaque fonction.
Quelques commandes VSCode utiles lorsqu'on est dans un fichier de test, avec leur équivalent Debug Test
:
Test: Run Test in Current File
Test: Run Test at Cursor
Test: Rerun Last Run
Test: Rerun Failed Tests
Voir https://code.visualstudio.com/docs/python/testing pour plus d'informations.
De la même manière pour les tests front, il faut cette fois installer l'extension vitest.explorer
. On aura alors accès aux tests des fichiers *.spec.tsx
dans l'onglet Testing.
On peut également utiliser la commande de launch Debug current spec test file
. Lorsqu'on est dans un fichier *.spec.tsx
, on peut lancer la commande depuis l'onglet Run and Debug
et les tests du fichier seront exécutés.
- Rebuild :
pc rebuild-backend
(reconstruire l'image docker sans cache) - Restart :
pc restart-backend
(effacer la base de données, et relancer tous les containers) - Restore :
pc restore-db file.pgdump
(restaurer un fichier de dump postgresql (file.pgdump) en local)
Si la commande sandbox renvoie des erreurs que je n'arrive pas à résoudre, on peut essayer de supprimer et reconstruire
sa BDD locale via pc restart-backend
. Sinon:
- stopper les images lancées
docker rm -f pc-postgres
<= suppression containerdocker volume rm pass-culture-main_postgres_data
<= suppression donnéespc start-backend
pc sandbox -n industrial
La branche master
est déployée sur testing toutes les heures.
Il est nécessaire d'avoir la CLI de github installée.
Pour déployer dans un environnement de preview, utilisez la commande pc deploy-preview
(documentation complète dans le script pc)
Le déploiement se fait à partir d'actions github (notamment release--build
, release--deploy.yml
, release--build.yml
, release--build-hotfix.yml
) et est documenté sur Notion (article Tag-MES-et-MEP).
Pour connaître le numéro de version de l'api déployé :
https://backend.staging.passculture.team/health/api
https://backend.passculture.app/health/api
pc -e <testing|staging|production|integration> psql
ou
pc -e <testing|staging|production|integration> pgcli
pc psql
ou
pc pgcli
Connexion en ligne de commande python à un environnement (testing | staging | production | integration)
pc -e <testing|staging|production|integration> python
Il est également possible d'uploader un fichier dans l'environnement temporaire à
l'emplacement /usr/src/app/myfile.extension
pc -e <testing|staging|production|integration> -f myfile.extension python
pc -e <testing|staging|production|integration> -f myfile.extension bash
En local :
pc access-db-logs
Sur les autres environnements :
pc -e <testing|staging|production> access-db-logs