43 lines
1.3 KiB
Ruby
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
|