]> git.openstreetmap.org Git - chef.git/commitdiff
Run yarn:install task as part of rails deployment
authorTom Hughes <tom@compton.nu>
Wed, 5 Aug 2020 20:20:07 +0000 (21:20 +0100)
committerTom Hughes <tom@compton.nu>
Wed, 5 Aug 2020 20:20:07 +0000 (21:20 +0100)
cookbooks/db/recipes/base.rb
cookbooks/web/resources/rails_port.rb

index d63a37811dca231c029dd7cdf28ff583e20dade5..84aac376c7e4eec504fbd210911cea0ba0203831 100644 (file)
@@ -47,6 +47,7 @@ rails_port "www.openstreetmap.org" do
   group "rails"
   repository "https://git.openstreetmap.org/public/rails.git"
   revision "live"
+  build_assets false
   database_host "localhost"
   database_name "openstreetmap"
   database_username "openstreetmap"
index 31cf233a02d0ee189fe754a1a880147d0a9613a1..6d39b937b8c5d07b60cbd7330aeee120784e3853 100644 (file)
@@ -32,6 +32,7 @@ property :group, String
 property :repository, String, :default => "https://git.openstreetmap.org/public/rails.git"
 property :revision, String, :default => "live"
 property :run_migrations, [true, false], :default => false
+property :build_assets, [true, false], :default => true
 property :email_from, String, :default => "OpenStreetMap <support@openstreetmap.org>"
 property :status, String, :default => "online"
 property :database_host, String
@@ -397,6 +398,21 @@ action :create do
     only_if { new_resource.run_migrations }
   end
 
+  package "yarnpkg" do
+    only_if { new_resource.build_assets }
+  end
+
+  execute "#{rails_directory}/package.json" do
+    action :nothing
+    command "bundle#{new_resource.ruby} exec rake yarn:install"
+    environment "RAILS_ENV" => "production"
+    cwd rails_directory
+    user new_resource.user
+    group new_resource.group
+    subscribes :run, "git[#{rails_directory}]"
+    only_if { new_resource.build_assets }
+  end
+
   execute "#{rails_directory}/app/assets/javascripts/i18n" do
     action :nothing
     command "bundle#{new_resource.ruby} exec rake i18n:js:export"
@@ -405,6 +421,7 @@ action :create do
     user new_resource.user
     group new_resource.group
     subscribes :run, "git[#{rails_directory}]"
+    only_if { new_resource.build_assets }
   end
 
   execute "#{rails_directory}/public/assets" do
@@ -419,8 +436,10 @@ action :create do
     subscribes :run, "file[#{rails_directory}/config/settings.local.yml]"
     subscribes :run, "file[#{rails_directory}/config/storage.yml]"
     subscribes :run, "file[#{rails_directory}/config/piwik.yml]"
+    subscribes :run, "execute[#{rails_directory}/package.json]"
     subscribes :run, "execute[#{rails_directory}/app/assets/javascripts/i18n]"
     notifies :restart, "passenger_application[#{rails_directory}]"
+    only_if { new_resource.build_assets }
   end
 
   file "#{rails_directory}/public/export/embed.html" do