mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-21 14:19:39 +02:00
* v1 of backend implementation for self hosting * Add docs * Add upgrades controller * Add global helpers for self hosting mode * Add self host settings controller * Conditionally show self hosting settings * Environment and config updates * Complete upgrade prompting flow * Update config for forked repo * Move configuration of github provider within class * Add upgrades cron * Update deploy button * Update guides * Fix render deployer * Typo * Enable auto upgrades * Fix cron * Make upgrade modes more clear and consistent * Trigger new available version * Fix logic for displaying upgrade prompts * Finish implementation * Fix regression * Trigger new version * Add i18n translations * trigger new version * reduce caching time for testing * Decrease cache for testing * trigger upgrade * trigger upgrade * Only trigger deploy once * trigger upgrade * If target is commit, always upgrade if any upgrade is available * trigger upgrade * trigger upgrade * Test release * Change back to maybe repo for defaults * Fix lint errors * Clearer naming * Fix relative link * Add abs path * Relative link * Update docs
31 lines
1.1 KiB
Ruby
31 lines
1.1 KiB
Ruby
class AutoUpgradeJob < ApplicationJob
|
|
queue_as :default
|
|
|
|
def perform(*args)
|
|
raise_if_disabled
|
|
|
|
return Rails.logger.info "Skipping auto-upgrades because app is set to manual upgrades. Please set UPGRADES_MODE=auto to enable auto-upgrades" if Setting.upgrades_mode == "manual"
|
|
|
|
Rails.logger.info "Searching for available auto-upgrades..."
|
|
|
|
candidate = Upgrader.available_upgrade_by_type(Setting.upgrades_target)
|
|
|
|
if candidate
|
|
if Rails.cache.read("last_auto_upgrade_commit_sha") == candidate.commit_sha
|
|
Rails.logger.info "Skipping auto upgrade: #{candidate.type} #{candidate.commit_sha} deploy in progress"
|
|
return
|
|
end
|
|
|
|
Rails.logger.info "Auto upgrading to #{candidate.type} #{candidate.commit_sha}..."
|
|
Upgrader.upgrade_to(candidate)
|
|
Rails.cache.write("last_auto_upgrade_commit_sha", candidate.commit_sha, expires_in: 1.day)
|
|
else
|
|
Rails.logger.info "No auto upgrade available at this time"
|
|
end
|
|
end
|
|
|
|
private
|
|
def raise_if_disabled
|
|
raise "Upgrades module is disabled. Please set UPGRADES_ENABLED=true to enable upgrade features" unless ENV["UPGRADES_ENABLED"] == "true"
|
|
end
|
|
end
|