Upgrade to Rails 8 and Ruby 3.4.5 (#1)

* Bump Ruby to 3.4.5
* Update dependencies
* Adjust for Rails 8 and Ruby 3.5 API changes
* Mark params strings as mutable in prepapration for frozen strings in Ruby 3.5
* Update test for HTML5 sanitizer
    With Rails 7.1 the HTML5 sanitizer became the default, this breakts this test because the old sanitizer used to delete unpermitted nodes, while the new one returns their content
    The final string is safe, but different then it used to be in Rails 7.0
* Remove direct Turbo tesh helpers require & parallelize tests
* Fix Zeitwerk issues with rails extensions
* Update Resque setup for Redis 5+
* Remove unused views
* Remove GID v1 handler
This commit is contained in:
Stanko Krtalić
2025-09-02 17:02:41 +02:00
committed by GitHub
parent 657d4edcd4
commit eecdb29332
39 changed files with 508 additions and 417 deletions
+24 -37
View File
@@ -1,45 +1,32 @@
#!/bin/bash
set -eo pipefail
#!/usr/bin/env ruby
require "fileutils"
app_root="$( cd "$(dirname "$0")/.."; pwd )"
app_name=campfire
APP_ROOT = File.expand_path("..", __dir__)
# Use application binstubs
export PATH="$app_root/bin:$PATH"
def system!(*args)
system(*args, exception: true)
end
announce() {
echo
echo "--- $@"
}
if [ "$RAILS_ENV" == "production" ]
then
echo "RAILS_ENV is production; bailing out"
if ENV["RAILS_ENV"] == "production"
puts "RAILS_ENV is production; bailing out"
exit
fi
end
announce "Installing dependencies"
mise install
bundle install
FileUtils.chdir APP_ROOT do
puts "== Installing dependencies =="
system "mise install"
system("bundle check") || system!("bundle install")
announce "Preparing database"
if [[ $* == *--reset* ]]; then
rm -rf ./storage/{db,files}
rails db:migrate:reset
else
rails db:prepare
fi
puts "\n== Preparing database =="
if ARGV.include?("--reset")
system "rm -rf ./storage/{db,files}"
system! "bin/rails db:reset"
end
system! "bin/rails db:prepare"
announce "Cleaning up old logs, caches, and temporary files"
rails log:clear tmp:clear
puts "\n== Removing old logs and tempfiles =="
system! "bin/rails log:clear tmp:clear"
announce "Restarting services"
rails restart
if [ -d "$HOME/.puma-dev" ]; then
announce "Configuring puma-dev"
ln -nfs "$app_root" "$HOME/.puma-dev/$app_name"
announce "Checking that https://$app_name.test/up is live: "
curl -Is "https://$app_name.test/up" | head -n 1
fi
puts "\n== Restarting services =="
system! "bin/rails restart"
end