Sha256: 62879b3fc7a2f12770cf8dca64b9f343c6f804d81cde6bae663707a3ed3cda44

Contents?: true

Size: 1.54 KB

Versions: 5

Compression:

Stored size: 1.54 KB

Contents

# frozen_string_literal: true

module MobileWorkflow
  module Cli
    class HerokuBackend
      def initialize(app_name:)
        @heroku_app_name = app_name.gsub('_', '-')
      end

      def create
        heroku_command "heroku create #{@heroku_app_name}"
        heroku_command 'git push --set-upstream heroku master'
      end

      def configure_activestorage
        heroku_command "heroku buildpacks:add -i 1 https://github.com/heroku/heroku-buildpack-activestorage-preview --app #{@heroku_app_name}"
        heroku_command "heroku labs:enable runtime-dyno-metadata --app #{@heroku_app_name}" # Gives access to heroku variables which can be used to construct URLs

        # Force recompile after buildpacks change
        heroku_command "git commit --allow-empty -m 'empty commit'"
        deploy
      end

      def deploy
        heroku_command 'git push'
      end

      def seed_db
        heroku_command 'heroku run rails db:seed'
      end

      def sync_dotenv
        env = File.read('.env').split.join(' ')
        puts "Setting env: #{env}"
        heroku_command "heroku config:set #{env} --app #{@heroku_app_name}"
      end

      def destroy
        heroku_command "heroku destroy #{@heroku_app_name} --confirm #{@heroku_app_name}"
      end

      def notifications_endpoint
        "https://#{@heroku_app_name}.herokuapp.com/sns_notifications"
      end

      private

      def heroku_command(command)
        puts "Running: #{command}"
        output = `#{command}`
        puts "Output: #{output}"
        output
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mobile_workflow-0.12.2 lib/mobile_workflow/cli/heroku_backend.rb
mobile_workflow-0.12.1 lib/mobile_workflow/cli/heroku_backend.rb
mobile_workflow-0.12.0 lib/mobile_workflow/cli/heroku_backend.rb
mobile_workflow-0.11.1 lib/mobile_workflow/cli/heroku_backend.rb
mobile_workflow-0.11.0 lib/mobile_workflow/cli/heroku_backend.rb