Sha256: 4238130c9cce801b1e67233fabdd5f5303896636bc34da63ef03435fa870b8f8

Contents?: true

Size: 1.79 KB

Versions: 2

Compression:

Stored size: 1.79 KB

Contents

module Context
  module DeployHelper
    def get_context_folder(context, folder)
      File.join(context.context_folder, folder)
    end

    def build_folder(context)
      get_context_folder(context, 'build')
    end
  
    def contexts_container(context)
      get_context_folder(context, 'contexts')
    end
    
    def chef_exec(commands)
      system("chef exec #{commands.join(' ')}")
    end
    
    def git(commands)
      chef_exec(['git'] + commands)
    end
    
    def gem(commands)
      chef_exec(['gem'] + commands)
    end
    
    def rake(commands)
      chef_exec(['rake'] + commands)
    end
    
    def cucumber(commands = [])
      chef_exec(['cucumber'] + commands)
    end

    def execute_action(context, action)
      state_action = if action.nil?
        context.cycle
        false
      else
        case action
        when 'once'
          puts "\nExecute only once\n"
          context.cycle
          false
        when 'always'
          puts "\nAlways in execution\n"
          while true do
            context.cycle
          end
          false
        when 'bump'
          puts "\nBump minor version\n"
          context.minor_bump
          false
        when 'release'
          puts "\nBump major version\n"
          context.major_bump
          false
        when 'test'
          puts "\nExecute tests\n"
          context.cucumber_test(context)
          false
        when 'reset'
          puts "\nReset versionning\n"
          # context.cucumber_test(deployer)
          false
        else
          puts "Unknown setting #{action}"
          false
        end
      end
      if state_action
        puts "Action #{action} executed correctly in context #{context}"
      else
        abort!("Failed to execute action #{action} in context #{context}")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
deploy-context-2.0.2 lib/deploy-context/context/deploy.rb
deploy-context-2.0.1.1.g34e199f lib/deploy-context/context/deploy.rb