Application Ruby on Rails avec base de données PostgreSQL, assets compilés avec asset pipeline.
Des fichiers de définition Docker Compose sont présents pour faciliter la mise en place de l'environnements de développement.
Build des images Docker :
docker compose build
Installation des gems :
docker compose run web bundle install
Cette commande doit être lancée dès qu'une nouvelle gem apparait.
Installation des packages Javascript :
docker compose run web yarn install
Un fichier .env
à la racine du projet local au développeur derait contenir les valeurs suivantes :
CLOUDINARY_URL=cloudinary://blablah
Créer la base de données :
docker compose run web rails db:drop db:create db:schema:load db:seed
Lancement d'une migration de base :
docker compose run web rails db:migrate
Démarrage des images :
docker compose down && docker compose up
Le workflow de développement est basé sur le GitHub flow :
- chaque changement de code (nouvelle fonctionnialité, bug fix, etc) devrait résulter d'un ticket (une issue GitHub)
- chaque changement de code devrait passer une review de code via une Pull Request
La bonne manière de créer une Pull Request est de :
- créer localement une nouvelle branche correspondant au ticket/issue qu'on veut traiter via
git checkout master && git pull && git checkout -b fix/13
- modifier le code et accumuler les commits dans cette nouvelle branch. Les commits devraient mentionner le ticket correspondant (utiliser les mot-clés fix or see)
- pousser le code vers GitHub
git push origin fix/13
- ouvrir une PUll Request
- attendre la review de code et éventuellement modifier son code en fonction des commentaires
Actuellement, la branche master est autodéployée sur Scalingo.