Class: Statistrano::Deployment::Strategy::Releases

Inherits:
Base
  • Object
show all
Defined in:
lib/statistrano/deployment/strategy/releases.rb

Overview

deployment type for running a releases deployment accross multiple remotes

@example:

define_deployment "multi", :releases do
  build_task 'deploy:build'
  local_dir  'build'
  remote_dir '/var/www/proj'

  check_git  true
  git_branch 'master'

  remotes [
    { hostname: 'web01' },
    { hostname: 'web02' }
  ]

  # each remote gets merged with the global
  # configs and deployed to individually
  #
end

Instance Attribute Summary

Attributes inherited from Base

#name

Instance Method Summary collapse

Methods inherited from Base

#deploy, #flush_persisted_releaser!, #log_file, #persisted_releaser, #register_tasks, #remotes

Methods included from Registerable

#register_strategy

Methods included from Config::Configurable

#configuration, extended, #inherited, #option, #options, #task

Methods included from CheckGit

#safe_to_deploy?

Methods included from InvokeTasks

#call_or_invoke_task, #invoke_build_task, #invoke_post_deploy_task, #invoke_pre_symlink_task

Constructor Details

#initialize(name) ⇒ Releases

Returns a new instance of Releases.



43
44
45
# File 'lib/statistrano/deployment/strategy/releases.rb', line 43

def initialize name
  @name = name
end

Instance Method Details

#list_releasesObject



59
60
61
62
63
64
# File 'lib/statistrano/deployment/strategy/releases.rb', line 59

def list_releases
  remotes.each do |remote|
    releases = releaser.list_releases(remote).map { |rel| rel[:release] }
    Log.info :"#{remote.config.hostname}", releases
  end
end

#prune_releasesObject



53
54
55
56
57
# File 'lib/statistrano/deployment/strategy/releases.rb', line 53

def prune_releases
  remotes.each do |remote|
    releaser.prune_releases remote
  end
end

#rollback_releaseObject



47
48
49
50
51
# File 'lib/statistrano/deployment/strategy/releases.rb', line 47

def rollback_release
  remotes.each do |remote|
    releaser.rollback_release remote
  end
end