tuist/projects/cloud/lib/tasks/fly.rake

43 lines
1.3 KiB
Ruby

# frozen_string_literal: true
# commands used to deploy a Rails application
namespace :fly do
# BUILD step:
# - changes to the filesystem made here DO get deployed
# - NO access to secrets, volumes, databases
# - Failures here prevent deployment
# task :build do
# sh 'bundle exec vite build'
# end
# RELEASE step:
# - changes to the filesystem made here are DISCARDED
# - full access to secrets, databases
# - failures here prevent deployment
task release: "db:migrate"
# SERVER step:
# - changes to the filesystem made here are deployed
# - full access to secrets, databases
# - failures here result in VM being stated, shutdown, and rolled back
# to last successful deploy (if any).
task server: :swapfile do
sh "bin/rails assets:precompile"
sh "bundle exec puma -C config/puma.rb"
end
# optional SWAPFILE task:
# - adjust fallocate size as needed
# - performance critical applications should scale memory to the
# point where swap is rarely used. 'fly scale help' for details.
# - disable by removing dependency on the :server task, thus:
# task :server do
task :swapfile do
sh "fallocate -l 512M /swapfile"
sh "chmod 0600 /swapfile"
sh "mkswap /swapfile"
sh "echo 10 > /proc/sys/vm/swappiness"
sh "swapon /swapfile"
end
end