Merge pull request #5356 from betagouv/doc-boot-appli

Suppression de la dépendance à `overmind`
This commit is contained in:
Pierre de La Morinerie 2020-07-09 10:56:59 +02:00 committed by GitHub
commit a084fd199f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 24 deletions

View file

@ -1,2 +1,2 @@
server: bin/rails server -p 3000 server: RAILS_QUEUE_ADAPTER=delayed_job bin/rails server -p 3000
jobs: bin/delayed_job run jobs: bin/rake jobs:work

View file

@ -22,9 +22,6 @@ Vous souhaitez y apporter des changements ou des améliorations ? Lisez notre [
- rbenv : voir https://github.com/rbenv/rbenv-installer#rbenv-installer--doctor-scripts - rbenv : voir https://github.com/rbenv/rbenv-installer#rbenv-installer--doctor-scripts
- Yarn : voir https://yarnpkg.com/en/docs/install - Yarn : voir https://yarnpkg.com/en/docs/install
- Overmind :
* Mac : `brew install overmind`
* Linux : voir https://github.com/DarthSim/overmind#installation
#### Tests #### Tests
@ -60,9 +57,18 @@ Afin d'initialiser l'environnement de développement, exécutez la commande suiv
### Lancement de l'application ### Lancement de l'application
overmind start On lance le serveur d'application ainsi :
L'application tourne à l'adresse `http://localhost:3000`. bin/rails server
L'application tourne alors à l'adresse `http://localhost:3000`, et utilise le mécanisme par défaut de rails pour les tâches asynchrones.
C'est ce qu'on veut dans la plupart des cas. Une exception: ça ne joue pas les tâches cron.
Pour être une peu plus proche du comportement de production, et jouer les tâches cron, on peut lancer la message queue
dans un service dédié, et indiquer à rails d'utiliser delayed_job:
bin/rake jobs:work
RAILS_QUEUE_ADAPTER=delayed_job bin/rails server
### Utilisateurs de test ### Utilisateurs de test
@ -107,12 +113,6 @@ Pour exécuter les tests de l'application, plusieurs possibilités :
rails generate after_party:task task_name rails generate after_party:task task_name
### Debug
Une fois `overmind` lancé, et un breakpoint `byebug` inséré dans le code, il faut se connecter au process `server` dans un nouveau terminal afin d'intéragir avec byebug :
overmind connect server
### Linting ### Linting
Le projet utilise plusieurs linters pour vérifier la lisibilité et la qualité du code. Le projet utilise plusieurs linters pour vérifier la lisibilité et la qualité du code.

View file

@ -1,6 +1,5 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
require 'fileutils' require 'fileutils'
include FileUtils
# path to your application root. # path to your application root.
APP_ROOT = File.expand_path('..', __dir__) APP_ROOT = File.expand_path('..', __dir__)
@ -9,13 +8,15 @@ def system!(*args)
system(*args) || abort("\n== Command #{args} failed ==") system(*args) || abort("\n== Command #{args} failed ==")
end end
chdir APP_ROOT do FileUtils.chdir APP_ROOT do
# This script is a starting point to setup your application. # This script is a starting point to setup your application.
# Add necessary setup steps to this file. # Add necessary setup steps to this file.
puts "\n== Installing dependencies ==" puts "\n== Installing dependencies =="
system! 'gem install bundler --conservative' system! 'gem install bundler --conservative'
system('bundle check') || system!('bundle install') system('bundle check') || system!('bundle install')
# Install JavaScript dependencies
system! 'bin/yarn install' system! 'bin/yarn install'
puts "\n== Updating webdrivers ==" puts "\n== Updating webdrivers =="
@ -23,7 +24,7 @@ chdir APP_ROOT do
puts "\n== Copying sample files ==" puts "\n== Copying sample files =="
unless File.exist?('.env') unless File.exist?('.env')
cp 'config/env.example', '.env' FileUtils.cp 'config/env.example', '.env'
end end
# Create the database, load the schema, and initialize it with the seed data # Create the database, load the schema, and initialize it with the seed data
@ -34,5 +35,5 @@ chdir APP_ROOT do
system! 'bin/rails log:clear tmp:clear' system! 'bin/rails log:clear tmp:clear'
puts "\n== Done ==" puts "\n== Done =="
puts "You can now start the application server with `overmind start`." puts "You can now start the application server with `bin/rails server`."
end end

View file

@ -1,6 +1,5 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
require 'fileutils' require 'fileutils'
include FileUtils
# path to your application root. # path to your application root.
APP_ROOT = File.expand_path('..', __dir__) APP_ROOT = File.expand_path('..', __dir__)
@ -9,7 +8,7 @@ def system!(*args)
system(*args) || abort("\n== Command #{args} failed ==") system(*args) || abort("\n== Command #{args} failed ==")
end end
chdir APP_ROOT do FileUtils.chdir APP_ROOT do
# This script is a way to update your development environment automatically. # This script is a way to update your development environment automatically.
# Add necessary update steps to this file. # Add necessary update steps to this file.
@ -31,5 +30,5 @@ chdir APP_ROOT do
system! 'bin/rails log:clear' system! 'bin/rails log:clear'
puts "\n== Done ==" puts "\n== Done =="
puts "You can now start (or restart) the application server with `overmind start`." puts "You can now start (or restart) the application server with `bin/rails server`."
end end

View file

@ -83,10 +83,9 @@ Rails.application.configure do
# Raises error for missing translations # Raises error for missing translations
# config.action_view.raise_on_missing_translations = true # config.action_view.raise_on_missing_translations = true
# This is useful to run rails in development with :async queue adapter # We use the async adapter by default, but delayed_job can be set using
if ENV['RAILS_QUEUE_ADAPTER'] # RAILS_QUEUE_ADAPTER=delayed_job bin/rails server
config.active_job.queue_adapter = ENV['RAILS_QUEUE_ADAPTER'].to_sym config.active_job.queue_adapter = ENV.fetch('RAILS_QUEUE_ADAPTER', 'async').to_sym
end
config.file_watcher = ActiveSupport::EventedFileUpdateChecker config.file_watcher = ActiveSupport::EventedFileUpdateChecker
end end