Skip to content

pass-culture/pass-culture-main

Repository files navigation


Quality Gate Status Coverage

Testing Environement

Tag

Le repo main contient les 5 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)

Installation

Installer les bibliothèques

  • Docker

  • NVM (Node Version Manager)

    • curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  • Node

    • Lancer nvm install dans /pro
  • 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 ou brew install commitizen
  • Pour MacOS spécifiquement

    • CoreUtils: brew install coreutils libxmlsec1
  • 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

Installer les CLI

Installer l'ensemble des projets

Il vous faudra une clé SSH sur votre profil GitHub pour pouvoir cloner le repository.

  1. git clone git@github.com:pass-culture/pass-culture-main.git pass-culture-main
  2. cd pass-culture-main
  3. ./pc symlink
  4. pc install

Les README de chaque sous-projet détailleront leurs installations spécifiques.

Lancer les applications

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.

api

  • 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.

Backoffice

  • 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

pro

  • pc start-pro
  • http://localhost:3001/ devrait être lancé et fonctionnel
  • Connectez-vous avec pctest.admin93.0@example.com (admin) ou pctest.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

Commandes utiles

  • 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)

Troubleshooting:

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 container
  • docker volume rm pass-culture-main_postgres_data <= suppression données
  • pc start-backend
  • pc sandbox -n industrial

Déploiement

Déployer dans l'environnement Testing

Le déploiement se lance automatiquement lors d'un merge sur la branche master

Pré-requis : installer jq

Déployer dans les environnements Staging, Production et Integration

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

Administration

Connexion à la base postgreSQL d'un environnement

pc -e <testing|staging|production|integration> psql

ou

pc -e <testing|staging|production|integration> pgcli

Connexion à la base postgreSQL en local

pc psql

ou

pc pgcli

Connexion en ligne de commande python à un environnement (testing | staging | production | integration)

pc -e <testing|staging|production|integration> python

Téléverser un fichier

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

Accéder aux logs des bases de données

En local :

pc access-db-logs

Sur les autres environnements :

pc -e <testing|staging|production> access-db-logs