]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/stateofthemap/recipes/default.rb
stateofthemap: add reasonable expiry headers
[chef.git] / cookbooks / stateofthemap / recipes / default.rb
index 4d27bdffa09c46323edf7574abb7310823c2b10c..01c4bc91000d84b27ef6d4eb4d9b6e702522df00 100644 (file)
@@ -270,7 +270,7 @@ end
   end
 
   ssl_certificate "#{year}.stateofthemap.org" do
-    domains ["#{year}.stateofthemap.org", "#{year}.stateofthemap.com"]
+    domains ["#{year}.stateofthemap.org", "#{year}.stateofthemap.com", "#{year}.sotm.org"]
     notifies :reload, "service[apache2]"
   end
 
@@ -281,15 +281,26 @@ end
   end
 end
 
-gem_package "jekyll"
+package %w[
+  ruby
+  ruby-dev
+  zlib1g-dev
+]
 
-%w[2016 2017 2018 2019].each do |year|
+apache_module "expires"
+apache_module "rewrite"
+
+gem_package "bundler" do
+  version "1.17.3"
+end
+
+%w[2016 2017 2018 2019 2020].each do |year|
   git "/srv/#{year}.stateofthemap.org" do
     action :sync
     repository "git://github.com/openstreetmap/stateofthemap-#{year}.git"
     user "root"
     group "root"
-    notifies :run, "execute[/srv/#{year}.stateofthemap.org]"
+    notifies :run, "execute[/srv/#{year}.stateofthemap.org/Gemfile]"
   end
 
   directory "/srv/#{year}.stateofthemap.org/_site" do
@@ -298,16 +309,34 @@ gem_package "jekyll"
     group "nogroup"
   end
 
+  # Workaround https://github.com/jekyll/jekyll/issues/7804
+  # by creating a .jekyll-cache folder
+  directory "/srv/#{year}.stateofthemap.org/.jekyll-cache" do
+    mode 0o755
+    owner "nobody"
+    group "nogroup"
+  end
+
+  execute "/srv/#{year}.stateofthemap.org/Gemfile" do
+    action :nothing
+    command "bundle install --deployment"
+    cwd "/srv/#{year}.stateofthemap.org"
+    user "root"
+    group "root"
+    notifies :run, "execute[/srv/#{year}.stateofthemap.org]"
+    only_if { ::File.exist?("/srv/#{year}.stateofthemap.org/Gemfile") }
+  end
+
   execute "/srv/#{year}.stateofthemap.org" do
     action :nothing
-    command "jekyll build --trace"
+    command "bundle exec jekyll build --trace --baseurl=https://#{year}.stateofthemap.org"
     cwd "/srv/#{year}.stateofthemap.org"
     user "nobody"
     group "nogroup"
   end
 
   ssl_certificate "#{year}.stateofthemap.org" do
-    domains ["#{year}.stateofthemap.org", "#{year}.stateofthemap.com"]
+    domains ["#{year}.stateofthemap.org", "#{year}.stateofthemap.com", "#{year}.sotm.org"]
     notifies :reload, "service[apache2]"
   end