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 installdans/pro
- Lancer
-
npm i -g @aikidosec/safe-chainsafe-chain setup- Redémarrer le terminal
-
npm install --global yarn(NPM)- autres méthodes dans la doc de Yarn
-
Commitizen (CLI pour écrire des commits au bon format)
pip install -U commitizenoubrew install commitizen
-
brew install gitleaks
Pour les devs qui n'utilisent PAS VSCode et qui ouvrent le projet à partir du dossier racine pass-culture-main dans leur IDE :
-
Biome (Linter JS/JSON/CSS/HTML pour le Frontend)
npm i -g @biomejs/biomeoubrew install biome- Installer l'extension correspondant à ton IDE si dispo
- Prendre garde à ce que ta version Biome globale soit la même que celle déclarée dans les dev-deps
pro/package.json.
-
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-0pour 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 [email protected]:pass-culture/pass-culture-main.git pass-culture-maincd pass-culture-main./pc symlinkpc 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-backendpc 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
[email protected], 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_EMAILdans le fichier.env.local.secret.
pc start-pro- http://localhost:3001/ devrait être lancé et fonctionnel
- Connectez-vous avec
[email protected](admin) ou[email protected](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 FileTest: Run Test at CursorTest: Rerun Last RunTest: 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-backendpc 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> psqlou
pc -e <testing|staging|production|integration> pgclipc psqlou
pc pgcliConnexion en ligne de commande python à un environnement (testing | staging | production | integration)
pc -e <testing|staging|production|integration> pythonIl 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 pythonpc -e <testing|staging|production|integration> -f myfile.extension bashEn local :
pc access-db-logsSur les autres environnements :
pc -e <testing|staging|production> access-db-logs