Skip to content

Latest commit

 

History

History
274 lines (184 loc) · 8.02 KB

File metadata and controls

274 lines (184 loc) · 8.02 KB

Setup de l'environnement de dev

Ce document contient des instructions sur la mise en place d'une instance de développement du site afup.org.

Table des matières

  1. Pré-requis
  2. Installation
  3. Base de données
  4. Tests
  5. Qualité du code
  6. Outils externes

Pré-requis

  1. Docker
  2. Docker Compose
  3. Git

Installation

  1. Créer un fork du repository sur votre compte GitHub
  2. Cloner ce fork avec git :
git clone https://github.com/my-account/afup-web.git
  1. Lancer make docker-up pour lancer le projet
  2. Lancer make init pour le setup initial (config, dépendances, base de données)

Le site devrait maintenant être accessible en local :

La base de test inclus un utilisateur administration avec les identifiants suivants :

  • username : admin@admin.fr
  • password : admin

Variables d'environnement

Plusieurs possibilités de configuration des containers sont disponibles, via l'utilisation de variables d'environnement.

Pour faciliter leur configuration, un fichier .env est créé à la racine du projet à la première exécution de la commande make docker-up. Ce fichier contient la liste des options disponibles.

Options Docker

Le fichier compose.override.yml est créé automatiquement à l'installation du projet.

Par exemple, les ports utilisés pour le site et mailcatcher peuvent être modifiés dans ce fichier.

La variable d'environnement DOCKER_UP_OPTIONS permet de passer des options à la commande docker compose up (via make docker-up).

Processeurs ARM

Pour faire fonctionner les images des bases de données (site et tests) sur un processeur ARM (par exemple sur Mac) il faut ajouter une surcharge dans le fichier compose.override.yml :

services:
  db:
    platform: linux/amd64
  dbtest:
    platform: linux/amd64

Base de données

MySQL

Config par défaut :

  • user : afup
  • pass : afup
  • host : localhost
  • port : 3606
  • database : web

La base de donnée est accessible via le script docker/bin/mysql.

Algolia (recherche à facettes)

Pour que la recherche à facettes fonctionne, il faut créer un compte gratuit sur www.algolia.com et créer une application Algolia. Une fois l'application crée, mettre à jour le fichier .env avec les clés d'API automatiquement générées et relancer le projet via Docker.

ALGOLIA_APP_ID=DVB92YWTPE # Algolia Application ID
ALGOLIA_BACKEND_API_KEY=78e71e5r5c2Rb353f5a03376gb9878779 # Algolia Write API Key
ALGOLIA_FRONTEND_API_KEY=74e71e5r5c2Rb353f5a03376gb9878777 # Algolia Search API Key

Lancer les commandes suivantes pour créer les différents index :

php bin/console indexing:meetups
php bin/console indexing:planete
php bin/console indexing:talks

Tests

L'exécution des tests nécessite que le projet soit lancé via Docker.

Behat

Behat est utilisé pour tester les différentes pages du site (front et backoffice).

Il faut se connecter au container via make console puis :

./bin/behat

Tip

Il est possible de spécifier un test dans la ligne de commande :

# Une feature entière
./bin/behat tests/behat/features/Admin/Events/Planning.feature

# Un scénario spécifique
./bin/behat tests/behat/features/Admin/Events/Planning.feature:14

Une alternative est d'utiliser la commande make test-functional, attention cette commande arrête les containeurs de tests à la fin de l'exécution de la suite de test.

Si par la suite, vous souhaitez lancer un test, il faut bien penser à les allumer à nouveau.

Tests unitaires

Les tests unitaires sont écrits via PHPUnit.

Il faut se connecter au container via make console puis :

./bin/phpunit --testsuite unit

Une alternative est d'utiliser make test dans le container, attention cette commande exécute également PHP-Cs-Fixer.

Tests d'intégration

Ces tests sont écrits via PHPUnit et utilisent le kernel de Symfony : https://symfony.com/doc/current/testing.html#integration-tests

Pour les lancer, il faut se connecter au container via make console puis :

./bin/phpunit --testsuite integration

Une alternative est d'utiliser la commande make test-integration, attention cette commande arrête les containeurs de tests à la fin de l'exécution de la suite de test.

Si par la suite, vous souhaitez lancer un test, il faut bien penser à les allumer à nouveau.

Qualité du code

PHP-CS-Fixer

Cet outil sert à s'assurer de la mise en forme du PHP.

Il faut se connecter au container via make console puis,

Pour afficher les erreurs :

make cs-lint

Pour corriger les erreurs :

make cs-fix

PHPStan

Cet outil sert à vérifier les erreurs de typage dans le PHP.

PHPStan est lancé via un container Docker dédié pour pouvoir utiliser la dernière version sans avoir de conflit avec la version PHP du projet.

make phpstan

Outils externes

Paybox

Il est possible de tester les paiements Paybox en environnement de développement. Pour cela, les identifiant, site et rang de test sont déjà configurés dans le fichier .env par défaut.

Ensuite pour le paiement, il faut utiliser ces informations de carte (celle "Carte participant au programme 3-D Secure (enrôlée)") :

  • Numéro de carte : 1111222233334444
  • Validité : 12/25
  • CVV : 123

Callbacks de paiement

Afin de simuler un appel Paybox, il y a une commande disponible (en environnement de dev uniquement).

Cette commande utilise une série de questions pour guider son utilisation. Il faut cependant récupérer le cmd qui est indiqué dans la fenêtre de Paybox. Ce paramètre est de la forme : C2026-170120261126-0-1-ADMIN-84B ou F202601-1701-JDOE-11f8d

bin/console dev:paybox-callback-simulator

GitHub

La connection GitHub est utilisée pour le CFP.

Créer une application GitHub

Aller sur Register a new OAuth app

Créer une application avec ces paramètres :

  • Application name: AFUP/Web dev
  • Homepage URL: https://localhost:9205/
  • Authorization callback URL: https://localhost:9205/connect/github/check

Valider avec le bouton Register application.

Récupérer le Client IDet le Client secret.

Mettre ces 2 informations dans le fichier .env :

GITHUB_CLIENT_ID=<Client ID GitHub>
GITHUB_CLIENT_SECRET=<Client secret GitHub>

Google Map Geocoding

Cet outil est utilisé pour les exports des inscriptions.

Aller sur Google Cloud Platform Console

Créer un projet avec ces paramètres :

  • Nom du projet: AFUP/Web dev
  • Valider avec le bouton Créer

Puis dans Identifiants, Créer des identifiants, récupérer la clé.

Mettre cette information dans le fichier .env :

GOOGLE_MAPS_API_KEY=<Clé API Google>

Puis dans API et services activer l'API Geocoding API.

Bluesky

Pour pouvoir poster des replays sur Bluesky, il faut créer un mot de passe d'application : https://bsky.app/settings/app-passwords

Ensuite, il faut configurer l'identifier et ce mot de passe dans le fichier .env :

BLUESKY_API_IDENTIFIER=example.bsky.social
BLUESKY_API_APP_PASSWORD=my-app-passwod