1
0
Fork 0
forked from OpenNeo/impress

Upgrade to Ruby 3.4.5, Rails 8.0.2

Also improved the upgrade process a tiny bit, with some Ansible config simplifications.
This commit is contained in:
Emi Matchu 2025-07-23 20:39:27 -07:00
parent 234c866e28
commit ba873e9e55
163 changed files with 126 additions and 116 deletions

View file

@ -1 +1 @@
3.3.7 3.4.5

View file

@ -1,5 +1,5 @@
source 'https://rubygems.org' source 'https://rubygems.org'
ruby '3.3.7' ruby '3.4.5'
gem 'rails', '~> 8.0', '>= 8.0.1' gem 'rails', '~> 8.0', '>= 8.0.1'

View file

@ -81,13 +81,15 @@ GEM
addressable (2.8.7) addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0) public_suffix (>= 2.0.2, < 7.0)
aes_key_wrap (1.1.0) aes_key_wrap (1.1.0)
ast (2.4.2) ast (2.4.3)
async (2.21.1) async (2.26.0)
console (~> 1.29) console (~> 1.29)
fiber-annotation fiber-annotation
io-event (~> 1.6, >= 1.6.5) io-event (~> 1.12)
async-container (0.18.3) metrics (~> 0.12)
async (~> 2.10) traces (~> 0.15)
async-container (0.24.0)
async (~> 2.22)
async-http (0.86.0) async-http (0.86.0)
async (>= 2.10.2) async (>= 2.10.2)
async-pool (~> 0.9) async-pool (~> 0.9)
@ -98,12 +100,11 @@ GEM
protocol-http1 (>= 0.28.1) protocol-http1 (>= 0.28.1)
protocol-http2 (~> 0.22) protocol-http2 (~> 0.22)
traces (~> 0.10) traces (~> 0.10)
async-http-cache (0.4.4) async-http-cache (0.4.5)
async-http (~> 0.56) async-http (~> 0.56)
async-pool (0.10.2) async-pool (0.11.0)
async (>= 1.25) async (>= 2.0)
traces async-service (0.13.0)
async-service (0.12.0)
async async
async-container (~> 0.16) async-container (~> 0.16)
attr_required (1.0.2) attr_required (1.0.2)
@ -112,20 +113,20 @@ GEM
babel-source (>= 4.0, < 6) babel-source (>= 4.0, < 6)
execjs (~> 2.0) execjs (~> 2.0)
backport (1.2.0) backport (1.2.0)
base64 (0.2.0) base64 (0.3.0)
bcrypt (3.1.20) bcrypt (3.1.20)
benchmark (0.4.0) benchmark (0.4.1)
bigdecimal (3.1.9) bigdecimal (3.2.2)
bindata (2.5.0) bindata (2.5.1)
bindex (0.8.1) bindex (0.8.1)
bootsnap (1.18.4) bootsnap (1.18.6)
msgpack (~> 1.2) msgpack (~> 1.2)
builder (3.3.0) builder (3.3.0)
childprocess (5.1.0) childprocess (5.1.0)
logger (~> 1.5) logger (~> 1.5)
concurrent-ruby (1.3.5) concurrent-ruby (1.3.5)
connection_pool (2.5.0) connection_pool (2.5.3)
console (1.29.2) console (1.32.0)
fiber-annotation fiber-annotation
fiber-local (~> 1.1) fiber-local (~> 1.1)
json json
@ -145,18 +146,19 @@ GEM
warden (~> 1.2.3) warden (~> 1.2.3)
devise-encryptable (0.2.0) devise-encryptable (0.2.0)
devise (>= 2.1.0) devise (>= 2.1.0)
diff-lcs (1.5.1) diff-lcs (1.6.2)
dotenv (2.8.1) dotenv (2.8.1)
dotenv-rails (2.8.1) dotenv-rails (2.8.1)
dotenv (= 2.8.1) dotenv (= 2.8.1)
railties (>= 3.2) railties (>= 3.2)
drb (2.2.1) drb (2.2.3)
e2mmap (0.1.0) e2mmap (0.1.0)
email_validator (2.2.4) email_validator (2.2.4)
activemodel activemodel
erb (5.0.2)
erubi (1.13.1) erubi (1.13.1)
execjs (2.10.0) execjs (2.10.0)
falcon (0.48.4) falcon (0.48.6)
async async
async-container (~> 0.18) async-container (~> 0.18)
async-http (~> 0.75) async-http (~> 0.75)
@ -169,42 +171,42 @@ GEM
protocol-http (~> 0.31) protocol-http (~> 0.31)
protocol-rack (~> 0.7) protocol-rack (~> 0.7)
samovar (~> 2.3) samovar (~> 2.3)
faraday (2.12.2) faraday (2.13.3)
faraday-net_http (>= 2.0, < 3.5) faraday-net_http (>= 2.0, < 3.5)
json json
logger logger
faraday-follow_redirects (0.3.0) faraday-follow_redirects (0.3.0)
faraday (>= 1, < 3) faraday (>= 1, < 3)
faraday-net_http (3.4.0) faraday-net_http (3.4.1)
net-http (>= 0.5.0) net-http (>= 0.5.0)
ffi (1.17.1) ffi (1.17.2)
fiber-annotation (0.2.0) fiber-annotation (0.2.0)
fiber-local (1.1.0) fiber-local (1.1.0)
fiber-storage fiber-storage
fiber-storage (1.0.0) fiber-storage (1.0.1)
globalid (1.2.1) globalid (1.2.1)
activesupport (>= 6.1) activesupport (>= 6.1)
haml (6.3.0) haml (6.3.0)
temple (>= 0.8.2) temple (>= 0.8.2)
thor thor
tilt tilt
hashdiff (1.1.2) hashdiff (1.2.0)
hashie (5.0.0) hashie (5.0.0)
http_accept_language (2.1.1) http_accept_language (2.1.1)
i18n (1.14.7) i18n (1.14.7)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
io-console (0.8.0) io-console (0.8.1)
io-endpoint (0.14.0) io-endpoint (0.15.2)
io-event (1.7.5) io-event (1.12.0)
io-stream (0.6.1) io-stream (0.10.0)
irb (1.15.1) irb (1.15.2)
pp (>= 0.6.0) pp (>= 0.6.0)
rdoc (>= 4.0.0) rdoc (>= 4.0.0)
reline (>= 0.4.2) reline (>= 0.4.2)
jaro_winkler (1.6.0) jaro_winkler (1.6.1)
jsbundling-rails (1.3.1) jsbundling-rails (1.3.1)
railties (>= 6.0.0) railties (>= 6.0.0)
json (2.9.1) json (2.13.0)
json-jwt (1.16.7) json-jwt (1.16.7)
activesupport (>= 4.2) activesupport (>= 4.2)
aes_key_wrap aes_key_wrap
@ -216,15 +218,17 @@ GEM
rexml (>= 3.3.9) rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0) kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0) kramdown (~> 2.0)
language_server-protocol (3.17.0.3) language_server-protocol (3.17.0.5)
launchy (3.0.1) launchy (3.1.1)
addressable (~> 2.8) addressable (~> 2.8)
childprocess (~> 5.0) childprocess (~> 5.0)
logger (~> 1.6)
letter_opener (1.10.0) letter_opener (1.10.0)
launchy (>= 2.2, < 4) launchy (>= 2.2, < 4)
localhost (1.3.1) lint_roller (1.1.0)
localhost (1.5.0)
logger (1.7.0) logger (1.7.0)
loofah (2.24.0) loofah (2.24.1)
crass (~> 1.0.2) crass (~> 1.0.2)
nokogiri (>= 1.12.0) nokogiri (>= 1.12.0)
mail (2.8.1) mail (2.8.1)
@ -232,18 +236,18 @@ GEM
net-imap net-imap
net-pop net-pop
net-smtp net-smtp
mapping (1.1.1) mapping (1.1.3)
marcel (1.0.4) marcel (1.0.4)
memory_profiler (1.1.0) memory_profiler (1.1.0)
metrics (0.12.1) metrics (0.12.2)
mini_mime (1.1.5) mini_mime (1.1.5)
mini_portile2 (2.8.8) mini_portile2 (2.8.9)
minitest (5.25.5) minitest (5.25.5)
msgpack (1.7.5) msgpack (1.8.0)
mysql2 (0.5.6) mysql2 (0.5.6)
net-http (0.6.0) net-http (0.6.0)
uri uri
net-imap (0.5.6) net-imap (0.5.9)
date date
net-protocol net-protocol
net-pop (0.1.2) net-pop (0.1.2)
@ -253,10 +257,10 @@ GEM
net-smtp (0.5.1) net-smtp (0.5.1)
net-protocol net-protocol
nio4r (2.7.4) nio4r (2.7.4)
nokogiri (1.18.6) nokogiri (1.18.9)
mini_portile2 (~> 2.8.2) mini_portile2 (~> 2.8.2)
racc (~> 1.4) racc (~> 1.4)
omniauth (2.1.2) omniauth (2.1.3)
hashie (>= 3.4.6) hashie (>= 3.4.6)
rack (>= 2.2.3) rack (>= 2.2.3)
rack-protection rack-protection
@ -281,33 +285,34 @@ GEM
webfinger (~> 2.0) webfinger (~> 2.0)
openssl (3.3.0) openssl (3.3.0)
orm_adapter (0.5.0) orm_adapter (0.5.0)
parallel (1.26.3) parallel (1.27.0)
parser (3.3.6.0) parser (3.3.8.0)
ast (~> 2.4.1) ast (~> 2.4.1)
racc racc
pp (0.6.2) pp (0.6.2)
prettyprint prettyprint
prettyprint (0.2.0) prettyprint (0.2.0)
process-metrics (0.3.0) prism (1.4.0)
process-metrics (0.5.1)
console (~> 1.8) console (~> 1.8)
json (~> 2) json (~> 2)
samovar (~> 2.1) samovar (~> 2.1)
protocol-hpack (1.5.1) protocol-hpack (1.5.1)
protocol-http (0.47.1) protocol-http (0.51.0)
protocol-http1 (0.28.1) protocol-http1 (0.34.1)
protocol-http (~> 0.22) protocol-http (~> 0.22)
protocol-http2 (0.22.0) protocol-http2 (0.22.1)
protocol-hpack (~> 1.4) protocol-hpack (~> 1.4)
protocol-http (~> 0.18) protocol-http (~> 0.47)
protocol-rack (0.10.1) protocol-rack (0.10.1)
protocol-http (~> 0.37) protocol-http (~> 0.37)
rack (>= 1.0) rack (>= 1.0)
psych (5.2.3) psych (5.2.6)
date date
stringio stringio
public_suffix (6.0.1) public_suffix (6.0.2)
racc (1.8.1) racc (1.8.1)
rack (3.1.12) rack (3.1.16)
rack-attack (6.7.0) rack-attack (6.7.0)
rack (>= 1.0, < 4) rack (>= 1.0, < 4)
rack-mini-profiler (3.3.1) rack-mini-profiler (3.3.1)
@ -323,7 +328,7 @@ GEM
base64 (>= 0.1.0) base64 (>= 0.1.0)
logger (>= 1.6.0) logger (>= 1.6.0)
rack (>= 3.0.0, < 4) rack (>= 3.0.0, < 4)
rack-session (2.1.0) rack-session (2.1.1)
base64 (>= 0.1.0) base64 (>= 0.1.0)
rack (>= 3.0.0) rack (>= 3.0.0)
rack-test (2.2.0) rack-test (2.2.0)
@ -344,7 +349,7 @@ GEM
activesupport (= 8.0.2) activesupport (= 8.0.2)
bundler (>= 1.15.0) bundler (>= 1.15.0)
railties (= 8.0.2) railties (= 8.0.2)
rails-dom-testing (2.2.0) rails-dom-testing (2.3.0)
activesupport (>= 5.0.0) activesupport (>= 5.0.0)
minitest minitest
nokogiri (>= 1.6) nokogiri (>= 1.6)
@ -363,10 +368,11 @@ GEM
thor (~> 1.0, >= 1.2.2) thor (~> 1.0, >= 1.2.2)
zeitwerk (~> 2.6) zeitwerk (~> 2.6)
rainbow (3.1.1) rainbow (3.1.1)
rake (13.2.1) rake (13.3.0)
rbs (2.8.4) rbs (2.8.4)
rdiscount (2.2.7.3) rdiscount (2.2.7.3)
rdoc (6.13.1) rdoc (6.14.2)
erb
psych (>= 4.0.0) psych (>= 4.0.0)
react-rails (2.7.1) react-rails (2.7.1)
babel-transpiler (>= 0.7.0) babel-transpiler (>= 0.7.0)
@ -375,23 +381,23 @@ GEM
railties (>= 3.2) railties (>= 3.2)
tilt tilt
regexp_parser (2.10.0) regexp_parser (2.10.0)
reline (0.6.0) reline (0.6.2)
io-console (~> 0.5) io-console (~> 0.5)
responders (3.1.1) responders (3.1.1)
actionpack (>= 5.2) actionpack (>= 5.2)
railties (>= 5.2) railties (>= 5.2)
reverse_markdown (2.1.1) reverse_markdown (2.1.1)
nokogiri nokogiri
rexml (3.4.0) rexml (3.4.1)
rspec-core (3.13.2) rspec-core (3.13.5)
rspec-support (~> 3.13.0) rspec-support (~> 3.13.0)
rspec-expectations (3.13.3) rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0) rspec-support (~> 3.13.0)
rspec-mocks (3.13.2) rspec-mocks (3.13.5)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0) rspec-support (~> 3.13.0)
rspec-rails (7.1.0) rspec-rails (7.1.1)
actionpack (>= 7.0) actionpack (>= 7.0)
activesupport (>= 7.0) activesupport (>= 7.0)
railties (>= 7.0) railties (>= 7.0)
@ -399,19 +405,21 @@ GEM
rspec-expectations (~> 3.13) rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13) rspec-mocks (~> 3.13)
rspec-support (~> 3.13) rspec-support (~> 3.13)
rspec-support (3.13.2) rspec-support (3.13.4)
rubocop (1.70.0) rubocop (1.78.0)
json (~> 2.3) json (~> 2.3)
language_server-protocol (>= 3.17.0) language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 3.3.0.2) parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0) rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0) regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.36.2, < 2.0) rubocop-ast (>= 1.45.1, < 2.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0) unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.37.0) rubocop-ast (1.46.0)
parser (>= 3.3.1.0) parser (>= 3.3.7.2)
prism (~> 1.4)
ruby-progressbar (1.13.0) ruby-progressbar (1.13.0)
samovar (2.3.0) samovar (2.3.0)
console (~> 1.0) console (~> 1.0)
@ -430,10 +438,10 @@ GEM
sprockets-rails sprockets-rails
tilt tilt
securerandom (0.4.1) securerandom (0.4.1)
sentry-rails (5.22.1) sentry-rails (5.26.0)
railties (>= 5.0) railties (>= 5.0)
sentry-ruby (~> 5.22.1) sentry-ruby (~> 5.26.0)
sentry-ruby (5.22.1) sentry-ruby (5.26.0)
bigdecimal bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
shell (0.8.1) shell (0.8.1)
@ -455,18 +463,19 @@ GEM
thor (~> 1.0) thor (~> 1.0)
tilt (~> 2.0) tilt (~> 2.0)
yard (~> 0.9, >= 0.9.24) yard (~> 0.9, >= 0.9.24)
solargraph-rails (1.1.0) solargraph-rails (1.1.2)
activesupport activesupport
solargraph solargraph (>= 0.48.0, < 0.53.0)
sprockets (4.2.1) sprockets (4.2.2)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
logger
rack (>= 2.2.4, < 4) rack (>= 2.2.4, < 4)
sprockets-rails (3.5.2) sprockets-rails (3.5.2)
actionpack (>= 6.1) actionpack (>= 6.1)
activesupport (>= 6.1) activesupport (>= 6.1)
sprockets (>= 3.0.0) sprockets (>= 3.0.0)
stackprof (0.2.26) stackprof (0.2.27)
stringio (3.1.6) stringio (3.1.7)
swd (2.0.3) swd (2.0.3)
activesupport (>= 3) activesupport (>= 3)
attr_required (>= 0.0.5) attr_required (>= 0.0.5)
@ -474,19 +483,19 @@ GEM
faraday-follow_redirects faraday-follow_redirects
sync (0.5.0) sync (0.5.0)
temple (0.10.3) temple (0.10.3)
terser (1.2.4) terser (1.2.6)
execjs (>= 0.3.0, < 3) execjs (>= 0.3.0, < 3)
thor (1.3.2) thor (1.4.0)
thread-local (1.1.0) thread-local (1.1.0)
tilt (2.5.0) tilt (2.6.1)
timeout (0.4.3) timeout (0.4.3)
traces (0.14.1) traces (0.15.2)
turbo-rails (2.0.11) turbo-rails (2.0.16)
actionpack (>= 6.0.0) actionpack (>= 7.1.0)
railties (>= 6.0.0) railties (>= 7.1.0)
tzinfo (2.0.6) tzinfo (2.0.6)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
unicode-display_width (3.1.3) unicode-display_width (3.1.4)
unicode-emoji (~> 4.0, >= 4.0.4) unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4) unicode-emoji (4.0.4)
uri (1.0.3) uri (1.0.3)
@ -505,17 +514,17 @@ GEM
activesupport activesupport
faraday (~> 2.0) faraday (~> 2.0)
faraday-follow_redirects faraday-follow_redirects
webmock (3.24.0) webmock (3.25.1)
addressable (>= 2.8.0) addressable (>= 2.8.0)
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0) hashdiff (>= 0.4.0, < 2.0.0)
websocket-driver (0.7.7) websocket-driver (0.8.0)
base64 base64
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5) websocket-extensions (0.1.5)
will_paginate (4.0.1) will_paginate (4.0.1)
yard (0.9.37) yard (0.9.37)
zeitwerk (2.7.2) zeitwerk (2.7.3)
PLATFORMS PLATFORMS
ruby ruby
@ -567,7 +576,7 @@ DEPENDENCIES
will_paginate (~> 4.0) will_paginate (~> 4.0)
RUBY VERSION RUBY VERSION
ruby 3.3.7p123 ruby 3.4.5p51
BUNDLED WITH BUNDLED WITH
2.5.18 2.7.1

View file

@ -6,7 +6,6 @@
vars: vars:
local_app_root: "{{ playbook_dir }}/.." local_app_root: "{{ playbook_dir }}/.."
remote_project_root: "/srv/impress" remote_project_root: "/srv/impress"
ruby_version: "3.3.7"
# deploy:setup should have added us to the "impress-deployers" group, so we # deploy:setup should have added us to the "impress-deployers" group, so we
# should be able to become the "impress" user without a password. # should be able to become the "impress" user without a password.
@ -16,14 +15,15 @@
# skip our usual cleanup, to avoid disrupting the `current` version!) # skip our usual cleanup, to avoid disrupting the `current` version!)
# #
# This can be useful for upgrading our Ruby version without downtime: # This can be useful for upgrading our Ruby version without downtime:
# 1. Install the new Ruby version, but don't uninstall the old one. # 1. Update `ruby_version_latest` to the newest version, but not `ruby_version_live`.
# 2. Update the app to reference the new Ruby version in the `Gemfile`. # 2. Run `deploy:setup` to install the latest Ruby version.
# 3. Deploy the app with `skip_set_as_current`. # 3. Update the app to reference the new Ruby version in the `Gemfile`.
# 4. Update the service file manually to use the new Ruby to run the new # 4. Update `ruby_version_live` to the newest version, too.
# version of the app, referenced directly by path. # 5. Deploy the app with `skip_set_as_current`.
# 5. Link the new version as `current` manually. # 6. Update the service file manually to reference the newly-uploaded version by path.
# 6. Reset the service file to use the new Ruby to run `current`. # 7. Link the new version as `current` manually.
skip_set_as_current: no # 8. Reset the service file to use the new Ruby to run `current`.
skip_set_as_current: yes
tasks: tasks:
- name: Generate a version name from the current timestamp - name: Generate a version name from the current timestamp
command: date '+%Y-%m-%d-%s' command: date '+%Y-%m-%d-%s'
@ -62,7 +62,7 @@
- name: Configure Bundler to run in deployment mode - name: Configure Bundler to run in deployment mode
command: command:
chdir: "{{ remote_app_root }}" chdir: "{{ remote_app_root }}"
cmd: /opt/ruby-{{ ruby_version }}/bin/bundle config set --local deployment true cmd: /opt/ruby-{{ ruby_version_live }}/bin/bundle config set --local deployment true
# This ensures that, while attempting our current deploy, we don't # This ensures that, while attempting our current deploy, we don't
# accidentally delete gems out from under the currently-running version. # accidentally delete gems out from under the currently-running version.
@ -72,7 +72,7 @@
- name: Configure Bundler to *not* clean up old gems when installing - name: Configure Bundler to *not* clean up old gems when installing
command: command:
chdir: "{{ remote_app_root }}" chdir: "{{ remote_app_root }}"
cmd: /opt/ruby-{{ ruby_version }}/bin/bundle config set --local clean false cmd: /opt/ruby-{{ ruby_version_live }}/bin/bundle config set --local clean false
# NOTE: Bundler recommends this, and they're pretty smart about it: if the # NOTE: Bundler recommends this, and they're pretty smart about it: if the
# Gemfile changes, this shouldn't disrupt the currently-running version, # Gemfile changes, this shouldn't disrupt the currently-running version,
@ -81,7 +81,7 @@
- name: Configure Bundler to use the bundle folder shared by all app versions - name: Configure Bundler to use the bundle folder shared by all app versions
command: command:
chdir: "{{ remote_app_root }}" chdir: "{{ remote_app_root }}"
cmd: "/opt/ruby-{{ ruby_version }}/bin/bundle config set --local path {{ remote_project_root}}/shared/bundle" cmd: "/opt/ruby-{{ ruby_version_live }}/bin/bundle config set --local path {{ remote_project_root}}/shared/bundle"
- name: Run `bundle install` to install dependencies in remote folder - name: Run `bundle install` to install dependencies in remote folder
command: command:
@ -89,7 +89,7 @@
# The `--local` flag instructs Bundler to use the cached dependencies # The `--local` flag instructs Bundler to use the cached dependencies
# in `vendor/cache`, instead of reading from the web, which is much # in `vendor/cache`, instead of reading from the web, which is much
# faster and more reliable! # faster and more reliable!
cmd: /opt/ruby-{{ ruby_version }}/bin/bundle install --local cmd: /opt/ruby-{{ ruby_version_live }}/bin/bundle install --local
- name: Update the `current` folder to point to the new version - name: Update the `current` folder to point to the new version
file: file:
@ -113,7 +113,7 @@
- name: Clean up gems no longer used in the current app version - name: Clean up gems no longer used in the current app version
command: command:
chdir: "{{ remote_app_root }}" chdir: "{{ remote_app_root }}"
cmd: /opt/ruby-{{ ruby_version }}/bin/bundle clean cmd: /opt/ruby-{{ ruby_version_live }}/bin/bundle clean
when: not skip_set_as_current when: not skip_set_as_current
- name: Find older app versions to clean up - name: Find older app versions to clean up

View file

@ -1,3 +1,9 @@
# There is currently only one impress box in our Ansible inventory! # There is currently only one impress box in our Ansible inventory!
[webserver] [webserver]
impress.openneo.net impress.openneo.net
[webserver:vars]
# These two values should usually be the same, unless you're in the middle of an upgrade!
# Latest is the newest version to install; live is the version to run the app with.
ruby_version_latest=3.4.5
ruby_version_live=3.4.5

View file

@ -5,7 +5,6 @@
become_user: impress become_user: impress
vars: vars:
remote_project_root: "/srv/impress" remote_project_root: "/srv/impress"
ruby_version: "3.3.7"
tasks: tasks:
- name: Read the second-to-most-recent version - name: Read the second-to-most-recent version
command: command:
@ -24,7 +23,7 @@
- name: Configure Bundler to run in deployment mode - name: Configure Bundler to run in deployment mode
command: command:
chdir: "{{ remote_app_root }}" chdir: "{{ remote_app_root }}"
cmd: /opt/ruby-{{ ruby_version }}/bin/bundle config set --local deployment true cmd: /opt/ruby-{{ ruby_version_live }}/bin/bundle config set --local deployment true
# This ensures that, while attempting our current deploy, we don't # This ensures that, while attempting our current deploy, we don't
# accidentally delete gems out from under the currently-running version. # accidentally delete gems out from under the currently-running version.
@ -34,7 +33,7 @@
- name: Configure Bundler to *not* clean up old gems when installing - name: Configure Bundler to *not* clean up old gems when installing
command: command:
chdir: "{{ remote_app_root }}" chdir: "{{ remote_app_root }}"
cmd: /opt/ruby-{{ ruby_version }}/bin/bundle config set --local clean false cmd: /opt/ruby-{{ ruby_version_live }}/bin/bundle config set --local clean false
# NOTE: Bundler recommends this, and they're pretty smart about it: if the # NOTE: Bundler recommends this, and they're pretty smart about it: if the
# Gemfile changes, this shouldn't disrupt the currently-running version, # Gemfile changes, this shouldn't disrupt the currently-running version,
@ -43,7 +42,7 @@
- name: Configure Bundler to use the bundle folder shared by all app versions - name: Configure Bundler to use the bundle folder shared by all app versions
command: command:
chdir: "{{ remote_app_root }}" chdir: "{{ remote_app_root }}"
cmd: "/opt/ruby-{{ ruby_version }}/bin/bundle config set --local path {{ remote_project_root}}/shared/bundle" cmd: "/opt/ruby-{{ ruby_version_live }}/bin/bundle config set --local path {{ remote_project_root}}/shared/bundle"
- name: Run `bundle install` to install dependencies in remote folder - name: Run `bundle install` to install dependencies in remote folder
command: command:
@ -51,7 +50,7 @@
# The `--local` flag instructs Bundler to use the cached dependencies # The `--local` flag instructs Bundler to use the cached dependencies
# in `vendor/cache`, instead of reading from the web, which is much # in `vendor/cache`, instead of reading from the web, which is much
# faster and more reliable! # faster and more reliable!
cmd: /opt/ruby-{{ ruby_version }}/bin/bundle install --local cmd: /opt/ruby-{{ ruby_version_live }}/bin/bundle install --local
- name: Update the `current` folder to point to the new version - name: Update the `current` folder to point to the new version
file: file:

View file

@ -6,10 +6,6 @@
vars: vars:
email_address: "emi@matchu.dev" # TODO: Extract this to personal config? email_address: "emi@matchu.dev" # TODO: Extract this to personal config?
impress_hostname: impress.openneo.net impress_hostname: impress.openneo.net
# These two values should usually be the same, unless you're in the middle of an upgrade!
ruby_version_latest: "3.3.7" # The latest Ruby to install.
ruby_version_live: "3.3.7" # The Ruby to run the latest version of the app with.
vars_files: vars_files:
# mysql_root_password, mysql_user_password, mysql_user_password_2020, # mysql_root_password, mysql_user_password, mysql_user_password_2020,
# dev_ips # dev_ips
@ -174,7 +170,7 @@
git: git:
repo: https://github.com/rbenv/ruby-build.git repo: https://github.com/rbenv/ruby-build.git
dest: /opt/ruby-build dest: /opt/ruby-build
version: v20250326 version: v20250716
- name: Check if Ruby {{ ruby_version_latest }} is already installed - name: Check if Ruby {{ ruby_version_latest }} is already installed
stat: stat:

Binary file not shown.

BIN
vendor/cache/ast-2.4.3.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/async-2.26.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/async-container-0.24.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/async-http-cache-0.4.5.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/async-pool-0.11.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/async-service-0.13.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/base64-0.3.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/benchmark-0.4.1.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/bigdecimal-3.2.2.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/bindata-2.5.1.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/bootsnap-1.18.6.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/connection_pool-2.5.3.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/console-1.32.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/diff-lcs-1.6.2.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/drb-2.2.3.gem vendored Normal file

Binary file not shown.

BIN
vendor/cache/erb-5.0.2.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/falcon-0.48.6.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/faraday-2.13.3.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/faraday-net_http-3.4.1.gem vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/fiber-storage-1.0.1.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/hashdiff-1.2.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/io-console-0.8.1.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/io-endpoint-0.15.2.gem vendored Normal file

Binary file not shown.

BIN
vendor/cache/io-event-1.12.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/io-stream-0.10.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/irb-1.15.2.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/jaro_winkler-1.6.1.gem vendored Normal file

Binary file not shown.

BIN
vendor/cache/json-2.13.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/launchy-3.1.1.gem vendored Normal file

Binary file not shown.

BIN
vendor/cache/lint_roller-1.1.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/localhost-1.5.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/loofah-2.24.1.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/mapping-1.1.3.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/metrics-0.12.2.gem vendored Normal file

Binary file not shown.

BIN
vendor/cache/mini_portile2-2.8.9.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/msgpack-1.8.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/net-imap-0.5.9.gem vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/omniauth-2.1.3.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/parallel-1.27.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/parser-3.3.8.0.gem vendored Normal file

Binary file not shown.

BIN
vendor/cache/prism-1.4.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/process-metrics-0.5.1.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/protocol-http-0.51.0.gem vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
vendor/cache/protocol-http1-0.34.1.gem vendored Normal file

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more