whiskey_disk 0.6.4 → 0.6.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/CHANGELOG +34 -0
  2. data/README.integration_specs +36 -0
  3. data/README.markdown +122 -5
  4. data/VERSION +1 -1
  5. data/bin/wd +5 -0
  6. data/lib/whiskey_disk/config.rb +35 -7
  7. data/lib/whiskey_disk.rb +31 -9
  8. data/scenarios/git_repositories/config.git/HEAD +1 -0
  9. data/scenarios/git_repositories/config.git/config +5 -0
  10. data/scenarios/git_repositories/config.git/description +1 -0
  11. data/scenarios/git_repositories/config.git/git-daemon-export-ok +0 -0
  12. data/scenarios/git_repositories/config.git/hooks/applypatch-msg.sample +15 -0
  13. data/scenarios/git_repositories/config.git/hooks/commit-msg.sample +24 -0
  14. data/scenarios/git_repositories/config.git/hooks/post-commit.sample +8 -0
  15. data/scenarios/git_repositories/config.git/hooks/post-receive.sample +15 -0
  16. data/scenarios/git_repositories/config.git/hooks/post-update.sample +8 -0
  17. data/scenarios/git_repositories/config.git/hooks/pre-applypatch.sample +14 -0
  18. data/scenarios/git_repositories/config.git/hooks/pre-commit.sample +46 -0
  19. data/scenarios/git_repositories/config.git/hooks/pre-rebase.sample +169 -0
  20. data/scenarios/git_repositories/config.git/hooks/prepare-commit-msg.sample +36 -0
  21. data/scenarios/git_repositories/config.git/hooks/update.sample +128 -0
  22. data/scenarios/git_repositories/config.git/info/exclude +6 -0
  23. data/scenarios/git_repositories/config.git/objects/17/6bf54cf17d1d1c24556dc059c4144a5df230e8 +0 -0
  24. data/scenarios/git_repositories/config.git/objects/20/e9ff3feaa8ede30f707e5f1b4356e3c02bb7ec +0 -0
  25. data/scenarios/git_repositories/config.git/objects/45/117b1c775f0de415478dbf08ed9d667ab17d13 +0 -0
  26. data/scenarios/git_repositories/config.git/objects/71/eb5df52676e8e6efba471050b46978173af110 +1 -0
  27. data/scenarios/git_repositories/config.git/objects/d1/0bcd51fec41f854001e4d61f99d9e282a695d3 +0 -0
  28. data/scenarios/git_repositories/config.git/objects/e6/b02c66ad632e6b8535c4630cb8fe07732a72fc +0 -0
  29. data/scenarios/git_repositories/config.git/objects/f9/49d5d8a4f12c91471e34d4e277239c35ebd10d +0 -0
  30. data/scenarios/git_repositories/config.git/refs/heads/master +1 -0
  31. data/scenarios/git_repositories/project.git/HEAD +1 -0
  32. data/scenarios/git_repositories/project.git/config +5 -0
  33. data/scenarios/git_repositories/project.git/description +1 -0
  34. data/scenarios/git_repositories/project.git/git-daemon-export-ok +0 -0
  35. data/scenarios/git_repositories/project.git/hooks/applypatch-msg.sample +15 -0
  36. data/scenarios/git_repositories/project.git/hooks/commit-msg.sample +24 -0
  37. data/scenarios/git_repositories/project.git/hooks/post-commit.sample +8 -0
  38. data/scenarios/git_repositories/project.git/hooks/post-receive.sample +15 -0
  39. data/scenarios/git_repositories/project.git/hooks/post-update.sample +8 -0
  40. data/scenarios/git_repositories/project.git/hooks/pre-applypatch.sample +14 -0
  41. data/scenarios/git_repositories/project.git/hooks/pre-commit.sample +46 -0
  42. data/scenarios/git_repositories/project.git/hooks/pre-rebase.sample +169 -0
  43. data/scenarios/git_repositories/project.git/hooks/prepare-commit-msg.sample +36 -0
  44. data/scenarios/git_repositories/project.git/hooks/update.sample +128 -0
  45. data/scenarios/git_repositories/project.git/info/exclude +6 -0
  46. data/scenarios/git_repositories/project.git/objects/20/1c7641c2e42b0b904e5c1f793489d8b858e4da +2 -0
  47. data/scenarios/git_repositories/project.git/objects/80/26076649ceccbe96a6292f2432652f08483035 +0 -0
  48. data/scenarios/git_repositories/project.git/objects/ef/2a88894d5421920b9dfe67a9a4d8043830e62e +0 -0
  49. data/scenarios/git_repositories/project.git/refs/heads/master +1 -0
  50. data/scenarios/invalid/deploy.yml +1 -0
  51. data/scenarios/local/deploy.yml +16 -0
  52. data/scenarios/remote/deploy.yml +5 -0
  53. data/spec/integration/invalid_configuration_spec.rb +39 -0
  54. data/spec/integration/local_deployments_spec.rb +230 -0
  55. data/spec/integration/remote_deployments_spec.rb +54 -0
  56. data/spec/spec_helper.rb +57 -0
  57. data/spec/wd_command_spec.rb +289 -6
  58. data/spec/whiskey_disk/config_spec.rb +233 -89
  59. data/spec/whiskey_disk/rake_spec.rb +0 -21
  60. data/spec/whiskey_disk_spec.rb +160 -142
  61. data/whiskey_disk.gemspec +55 -2
  62. metadata +57 -4
@@ -45,27 +45,57 @@ describe 'WhiskeyDisk' do
45
45
  WhiskeyDisk.configuration = @parameters
46
46
  end
47
47
 
48
- it 'should work without arguments' do
49
- lambda { WhiskeyDisk.remote? }.should.not.raise(ArgumentError)
50
- end
51
-
52
- it 'should not allow arguments' do
53
- lambda { WhiskeyDisk.remote?(:foo) }.should.raise(ArgumentError)
48
+ it 'should allow a domain argument' do
49
+ lambda { WhiskeyDisk.remote?('domain') }.should.not.raise(ArgumentError)
54
50
  end
55
51
 
56
- it 'should return false if the configuration includes a nil domain setting' do
57
- @parameters['domain'] = nil
58
- WhiskeyDisk.remote?.should == false
52
+ it 'should require a domain argument' do
53
+ lambda { WhiskeyDisk.remote? }.should.raise(ArgumentError)
59
54
  end
60
55
 
61
- it 'should return true if the configuration includes a non-empty domain setting' do
62
- @parameters['domain'] = [ { :name => 'smeghost' } ]
63
- WhiskeyDisk.remote?.should == true
56
+ describe 'when a domain limit is specified in the configuration' do
57
+ before do
58
+ @domain = 'myhost'
59
+ WhiskeyDisk::Config.stub!(:domain_limit).and_return(@domain)
60
+ end
61
+
62
+ it 'should return false if the provided domain is nil' do
63
+ WhiskeyDisk.remote?(nil).should == false
64
+ end
65
+
66
+ it 'should return false if the provided domain is the string "local"' do
67
+ WhiskeyDisk.remote?('local').should == false
68
+ end
69
+
70
+ it 'should return false if the provided domain matches the limit domain from the configuration' do
71
+ WhiskeyDisk.remote?(@domain).should == false
72
+ end
73
+
74
+ it 'should return false if the provided domain, ignoring any user@, matches the limit domain from the configuration' do
75
+ WhiskeyDisk.remote?("user@" + @domain).should == false
76
+ end
77
+
78
+ it 'should return true if the provided domain does not match the limit domain from the configuration' do
79
+ WhiskeyDisk.remote?('smeghost').should == true
80
+ end
64
81
  end
65
82
 
66
- it 'should return true if the configuration includes a multiple domain settings' do
67
- @parameters['domain'] = [ { :name => 'smeghost' }, { :name => 'faphost' } ]
68
- WhiskeyDisk.remote?.should == true
83
+ describe 'when no domain limit is specified in the configuration' do
84
+ before do
85
+ WhiskeyDisk::Config.stub!(:domain_limit).and_return(nil)
86
+ end
87
+
88
+ it 'should return false if the provided domain is nil' do
89
+ WhiskeyDisk.remote?(nil).should == false
90
+ end
91
+
92
+ it 'should return false if the provided domain is the string "local"' do
93
+ WhiskeyDisk.remote?('local').should == false
94
+ end
95
+
96
+ it 'should return true if the provided domain is non-empty' do
97
+ WhiskeyDisk.remote?('smeghost').should == true
98
+ end
69
99
  end
70
100
  end
71
101
 
@@ -547,61 +577,6 @@ describe 'WhiskeyDisk' do
547
577
  end
548
578
  end
549
579
 
550
- describe 'flushing changes' do
551
- describe 'when running remotely' do
552
- before do
553
- WhiskeyDisk.configuration = { 'domain' => [ { :name => 'www.domain.com' } ], 'deploy_to' => '/path/to/main/repo' }
554
- WhiskeyDisk.stub!(:bundle).and_return('command string')
555
- WhiskeyDisk.stub!(:run)
556
- end
557
-
558
- it 'should bundle the buffer of commands' do
559
- WhiskeyDisk.enqueue('x')
560
- WhiskeyDisk.enqueue('y')
561
- WhiskeyDisk.should.receive(:bundle)
562
- WhiskeyDisk.flush
563
- end
564
-
565
- it 'should use "run" to run all the bundled commands at once' do
566
- WhiskeyDisk.should.receive(:run).with('command string')
567
- WhiskeyDisk.flush
568
- end
569
- end
570
-
571
- describe 'when running locally' do
572
- before do
573
- WhiskeyDisk.reset
574
- WhiskeyDisk.configuration = { 'deploy_to' => '/path/to/main/repo' }
575
- WhiskeyDisk.stub!(:bundle).and_return('command string')
576
- WhiskeyDisk.stub!(:system)
577
- end
578
-
579
- it 'should bundle the buffer of commands' do
580
- WhiskeyDisk.enqueue('x')
581
- WhiskeyDisk.enqueue('y')
582
- WhiskeyDisk.should.receive(:bundle).and_return('command string')
583
- WhiskeyDisk.flush
584
- end
585
-
586
- it 'should use "system" to run all the bundled commands at once' do
587
- WhiskeyDisk.should.receive(:system).with('command string')
588
- WhiskeyDisk.flush
589
- end
590
-
591
- it 'should record a failure result when the system command fails' do
592
- WhiskeyDisk.stub!(:system).and_return(false)
593
- WhiskeyDisk.flush
594
- WhiskeyDisk.results.should == [ { :domain => 'local', :status => false } ]
595
- end
596
-
597
- it 'should record a success result when the system command succeeds' do
598
- WhiskeyDisk.stub!(:system).and_return(true)
599
- WhiskeyDisk.flush
600
- WhiskeyDisk.results.should == [ { :domain => 'local', :status => true } ]
601
- end
602
- end
603
- end
604
-
605
580
  describe 'bundling up buffered commands for execution' do
606
581
  before do
607
582
  WhiskeyDisk.reset
@@ -802,93 +777,136 @@ describe 'WhiskeyDisk' do
802
777
  end
803
778
  end
804
779
 
805
- describe 'when running a command string remotely' do
780
+ describe 'determining if a domain is of interest to us' do
806
781
  before do
807
- WhiskeyDisk.reset
808
- @domain = 'ogc@ogtastic.com'
809
- WhiskeyDisk.configuration = { 'domain' => [ { :name => @domain } ] }
810
- WhiskeyDisk.stub!(:system)
782
+ WhiskeyDisk::Config.stub!(:domain_limit).and_return(false)
783
+ end
784
+
785
+ it 'should allow specifying a domain' do
786
+ lambda { WhiskeyDisk.domain_of_interest?(:domain) }.should.not.raise(ArgumentError)
787
+ end
788
+
789
+ it 'should require a domain' do
790
+ lambda { WhiskeyDisk.domain_of_interest? }.should.raise(ArgumentError)
811
791
  end
812
792
 
813
- it 'should accept a command string' do
814
- lambda { WhiskeyDisk.run('ls') }.should.not.raise(ArgumentError)
793
+ it 'should return true when our configuration does not specify a domain limit' do
794
+ WhiskeyDisk::Config.stub!(:domain_limit).and_return(false)
795
+ WhiskeyDisk.domain_of_interest?('somedomain').should == true
815
796
  end
816
797
 
817
- it 'should require a command string' do
818
- lambda { WhiskeyDisk.run }.should.raise(ArgumentError)
798
+ it 'should return true when the specified domain matches the configuration domain limit' do
799
+ WhiskeyDisk::Config.stub!(:domain_limit).and_return('somedomain')
800
+ WhiskeyDisk.domain_of_interest?('somedomain').should == true
819
801
  end
820
802
 
803
+ it 'should return true when the specified domain matches the configuration domain limit, with a prepended "user@"' do
804
+ WhiskeyDisk::Config.stub!(:domain_limit).and_return('somedomain')
805
+ WhiskeyDisk.domain_of_interest?('user@somedomain').should == true
806
+ end
807
+
808
+ it 'should return false when the specified domain does not match the configuration domain limit' do
809
+ WhiskeyDisk::Config.stub!(:domain_limit).and_return('otherdomain')
810
+ WhiskeyDisk.domain_of_interest?('somedomain').should == false
811
+ end
812
+ end
813
+
814
+ describe 'flushing changes' do
815
+ before do
816
+ @cmd = 'ls'
817
+ @domains = [ { :name => 'ogc@ogtastic.com' }, { :name => 'foo@example.com' }, { :name => 'local' } ]
818
+ WhiskeyDisk.configuration = { 'domain' => @domains }
819
+ WhiskeyDisk.stub!(:domain_of_interest?).and_return(true)
820
+ WhiskeyDisk.stub!(:bundle).and_return(@cmd)
821
+ WhiskeyDisk.stub!(:system)
822
+ end
823
+
821
824
  it 'should fail if the domain path is not specified' do
822
825
  WhiskeyDisk.configuration = {}
823
- lambda { WhiskeyDisk.run('ls') }.should.raise
826
+ lambda { WhiskeyDisk.flush}.should.raise
824
827
  end
825
828
 
826
- describe 'and a single domain is specified' do
827
- before do
828
- @domain = 'ogc@ogtastic.com'
829
- WhiskeyDisk.configuration = { 'domain' => [ { :name => @domain } ] }
830
- end
831
-
832
- it 'should pass the string to ssh with verbosity enabled' do
833
- WhiskeyDisk.should.receive(:system).with('ssh', '-v', @domain, "set -x; ls")
834
- WhiskeyDisk.run('ls')
835
- end
836
-
837
- it 'should include domain role settings when the domain has roles' do
838
- WhiskeyDisk.configuration = { 'domain' => [ { :name => @domain, :roles => [ 'web', 'db' ] } ] }
839
- WhiskeyDisk.should.receive(:system).with('ssh', '-v', @domain, "set -x; export WD_ROLES='web:db'; ls")
840
- WhiskeyDisk.run('ls')
841
- end
829
+ it 'should use "run" to issue commands for all remote domains' do
830
+ WhiskeyDisk.should.receive(:run).with({ :name => 'ogc@ogtastic.com' }, @cmd)
831
+ WhiskeyDisk.should.receive(:run).with({ :name => 'foo@example.com' }, @cmd)
832
+ WhiskeyDisk.flush
842
833
  end
843
834
 
844
- describe 'and multiple domains are specified' do
845
- before do
846
- @domains = [ { :name => 'ogc@ogtastic.com' }, { :name => 'foo@example.com' } ]
847
- end
848
-
849
- it 'should run the command via ssh on each domain in the order specified in the configuration file' do
850
- TestOrderedExecution.configuration = { 'domain' => @domains }
851
- TestOrderedExecution.run('ls')
852
- TestOrderedExecution.commands.should == [
853
- "ssh -v ogc@ogtastic.com set -x; ls",
854
- "ssh -v foo@example.com set -x; ls"
855
- ]
856
- end
857
-
858
- it 'should include role settings for each domain when available' do
859
- @domains = [
860
- { :name => 'ogc@ogtastic.com', :roles => [ 'db', 'web' ] },
861
- { :name => 'foo@example.com', :roles => [ 'app' ] }
862
- ]
863
- TestOrderedExecution.configuration = { 'domain' => @domains }
864
- TestOrderedExecution.run('ls')
865
- TestOrderedExecution.commands.should == [
866
- "ssh -v ogc@ogtastic.com set -x; export WD_ROLES='db:web'; ls",
867
- "ssh -v foo@example.com set -x; export WD_ROLES='app'; ls"
868
- ]
869
- end
870
-
871
- it 'should not fail if an ssh command fails' do
872
- WhiskeyDisk.configuration = { 'domain' => @domains }
873
- WhiskeyDisk.stub!(:system).with('ssh', '-v', 'ogc@ogtastic.com', 'set -x; ls').and_return(false)
874
- lambda { WhiskeyDisk.run('ls') }.should.not.raise(RuntimeError)
875
- end
835
+ it 'should use "shell" to issue commands for any local domains' do
836
+ WhiskeyDisk.should.receive(:shell).with({ :name => 'local' }, @cmd)
837
+ WhiskeyDisk.flush
838
+ end
839
+
840
+ it 'should not issue a command via run for a remote domain which is not of interest' do
841
+ WhiskeyDisk.stub!(:domain_of_interest?).with('ogc@ogtastic.com').and_return(false)
842
+ WhiskeyDisk.should.not.receive(:run).with({ :name => 'ogc@ogtastic.com' }, @cmd)
843
+ WhiskeyDisk.flush
844
+ end
845
+
846
+ it 'should not issue a command via shell for a local domain which is not of interest' do
847
+ WhiskeyDisk.stub!(:domain_of_interest?).with('local').and_return(false)
848
+ WhiskeyDisk.should.not.receive(:shell).with({ :name => 'local' }, @cmd)
849
+ WhiskeyDisk.flush
850
+ end
851
+ end
852
+
853
+ describe 'when running a command string locally' do
854
+ before do
855
+ WhiskeyDisk.reset
856
+ @domain_name = 'local'
857
+ @domain = { :name => @domain_name }
858
+ WhiskeyDisk.configuration = { 'domain' => [ @domain ] }
859
+ WhiskeyDisk.stub!(:system)
860
+ end
861
+
862
+ it 'should accept a domain and a command string' do
863
+ lambda { WhiskeyDisk.shell(@domain, 'ls') }.should.not.raise(ArgumentError)
864
+ end
865
+
866
+ it 'should require a domain and a command string' do
867
+ lambda { WhiskeyDisk.shell(@domain) }.should.raise(ArgumentError)
868
+ end
869
+
870
+ it 'should pass the string to the shell with verbosity enabled' do
871
+ WhiskeyDisk.should.receive(:system).with("set -x; ls")
872
+ WhiskeyDisk.shell(@domain, 'ls')
873
+ end
876
874
 
877
- it 'should continue to run the remaining ssh commands when an ssh fails' do
878
- WhiskeyDisk.configuration = { 'domain' => @domains }
879
- WhiskeyDisk.stub!(:system).with('ssh', '-v', 'ogc@ogtastic.com', 'set -x; ls').and_return(false)
880
- WhiskeyDisk.should.receive(:system).with('ssh', '-v', 'foo@example.com', 'set -x; ls')
881
- WhiskeyDisk.run('ls')
882
- end
875
+ it 'should include domain role settings when the domain has roles' do
876
+ @domain = { :name => @domain_name, :roles => [ 'web', 'db' ] }
877
+ WhiskeyDisk.configuration = { 'domain' => [ @domain ] }
878
+ WhiskeyDisk.should.receive(:system).with("set -x; export WD_ROLES='web:db'; ls")
879
+ WhiskeyDisk.shell(@domain, 'ls')
880
+ end
881
+ end
882
+
883
+ describe 'when running a command string remotely' do
884
+ before do
885
+ WhiskeyDisk.reset
886
+ @domain_name = 'ogc@ogtastic.com'
887
+ @domain = { :name => @domain_name }
888
+ WhiskeyDisk.configuration = { 'domain' => [ @domain ] }
889
+ WhiskeyDisk.stub!(:system)
890
+ end
891
+
892
+ it 'should accept a domain and a command string' do
893
+ lambda { WhiskeyDisk.run(@domain, 'ls') }.should.not.raise(ArgumentError)
894
+ end
895
+
896
+ it 'should require a domain and a command string' do
897
+ lambda { WhiskeyDisk.run(@domain) }.should.raise(ArgumentError)
898
+ end
899
+
900
+ it 'should pass the string to ssh for the domain, with verbosity enabled' do
901
+ WhiskeyDisk.should.receive(:system).with('ssh', '-v', @domain_name, "set -x; ls")
902
+ WhiskeyDisk.run(@domain, 'ls')
903
+ end
883
904
 
884
- it 'should record failure and success status for issued ssh commands' do
885
- WhiskeyDisk.configuration = { 'domain' => @domains }
886
- WhiskeyDisk.stub!(:system).with('ssh', '-v', 'ogc@ogtastic.com', 'set -x; ls').and_return(false)
887
- WhiskeyDisk.stub!(:system).with('ssh', '-v', 'foo@example.com', 'set -x; ls').and_return(true)
888
- WhiskeyDisk.run('ls')
889
- WhiskeyDisk.results.should == [ { :domain => 'ogc@ogtastic.com', :status => false },
890
- { :domain => 'foo@example.com', :status => true} ]
891
- end
905
+ it 'should include domain role settings when the domain has roles' do
906
+ @domain = { :name => @domain_name, :roles => [ 'web', 'db' ] }
907
+ WhiskeyDisk.configuration = { 'domain' => [ @domain ] }
908
+ WhiskeyDisk.should.receive(:system).with('ssh', '-v', @domain_name, "set -x; export WD_ROLES='web:db'; ls")
909
+ WhiskeyDisk.run(@domain, 'ls')
892
910
  end
893
911
  end
894
912
 
data/whiskey_disk.gemspec CHANGED
@@ -5,20 +5,22 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{whiskey_disk}
8
- s.version = "0.6.4"
8
+ s.version = "0.6.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rick Bradley"]
12
- s.date = %q{2011-01-26}
12
+ s.date = %q{2011-02-08}
13
13
  s.description = %q{Opinionated gem for doing fast git-based server deployments.}
14
14
  s.email = %q{rick@rickbradley.com}
15
15
  s.executables = ["wd_role", "wd"]
16
16
  s.extra_rdoc_files = [
17
+ "README.integration_specs",
17
18
  "README.markdown"
18
19
  ]
19
20
  s.files = [
20
21
  "CHANGELOG",
21
22
  "MIT-LICENSE",
23
+ "README.integration_specs",
22
24
  "README.markdown",
23
25
  "Rakefile",
24
26
  "VERSION",
@@ -37,9 +39,57 @@ Gem::Specification.new do |s|
37
39
  "lib/whiskey_disk/config.rb",
38
40
  "lib/whiskey_disk/helpers.rb",
39
41
  "lib/whiskey_disk/rake.rb",
42
+ "scenarios/git_repositories/config.git/HEAD",
43
+ "scenarios/git_repositories/config.git/config",
44
+ "scenarios/git_repositories/config.git/description",
45
+ "scenarios/git_repositories/config.git/git-daemon-export-ok",
46
+ "scenarios/git_repositories/config.git/hooks/applypatch-msg.sample",
47
+ "scenarios/git_repositories/config.git/hooks/commit-msg.sample",
48
+ "scenarios/git_repositories/config.git/hooks/post-commit.sample",
49
+ "scenarios/git_repositories/config.git/hooks/post-receive.sample",
50
+ "scenarios/git_repositories/config.git/hooks/post-update.sample",
51
+ "scenarios/git_repositories/config.git/hooks/pre-applypatch.sample",
52
+ "scenarios/git_repositories/config.git/hooks/pre-commit.sample",
53
+ "scenarios/git_repositories/config.git/hooks/pre-rebase.sample",
54
+ "scenarios/git_repositories/config.git/hooks/prepare-commit-msg.sample",
55
+ "scenarios/git_repositories/config.git/hooks/update.sample",
56
+ "scenarios/git_repositories/config.git/info/exclude",
57
+ "scenarios/git_repositories/config.git/objects/17/6bf54cf17d1d1c24556dc059c4144a5df230e8",
58
+ "scenarios/git_repositories/config.git/objects/20/e9ff3feaa8ede30f707e5f1b4356e3c02bb7ec",
59
+ "scenarios/git_repositories/config.git/objects/45/117b1c775f0de415478dbf08ed9d667ab17d13",
60
+ "scenarios/git_repositories/config.git/objects/71/eb5df52676e8e6efba471050b46978173af110",
61
+ "scenarios/git_repositories/config.git/objects/d1/0bcd51fec41f854001e4d61f99d9e282a695d3",
62
+ "scenarios/git_repositories/config.git/objects/e6/b02c66ad632e6b8535c4630cb8fe07732a72fc",
63
+ "scenarios/git_repositories/config.git/objects/f9/49d5d8a4f12c91471e34d4e277239c35ebd10d",
64
+ "scenarios/git_repositories/config.git/refs/heads/master",
65
+ "scenarios/git_repositories/project.git/HEAD",
66
+ "scenarios/git_repositories/project.git/config",
67
+ "scenarios/git_repositories/project.git/description",
68
+ "scenarios/git_repositories/project.git/git-daemon-export-ok",
69
+ "scenarios/git_repositories/project.git/hooks/applypatch-msg.sample",
70
+ "scenarios/git_repositories/project.git/hooks/commit-msg.sample",
71
+ "scenarios/git_repositories/project.git/hooks/post-commit.sample",
72
+ "scenarios/git_repositories/project.git/hooks/post-receive.sample",
73
+ "scenarios/git_repositories/project.git/hooks/post-update.sample",
74
+ "scenarios/git_repositories/project.git/hooks/pre-applypatch.sample",
75
+ "scenarios/git_repositories/project.git/hooks/pre-commit.sample",
76
+ "scenarios/git_repositories/project.git/hooks/pre-rebase.sample",
77
+ "scenarios/git_repositories/project.git/hooks/prepare-commit-msg.sample",
78
+ "scenarios/git_repositories/project.git/hooks/update.sample",
79
+ "scenarios/git_repositories/project.git/info/exclude",
80
+ "scenarios/git_repositories/project.git/objects/20/1c7641c2e42b0b904e5c1f793489d8b858e4da",
81
+ "scenarios/git_repositories/project.git/objects/80/26076649ceccbe96a6292f2432652f08483035",
82
+ "scenarios/git_repositories/project.git/objects/ef/2a88894d5421920b9dfe67a9a4d8043830e62e",
83
+ "scenarios/git_repositories/project.git/refs/heads/master",
84
+ "scenarios/invalid/deploy.yml",
85
+ "scenarios/local/deploy.yml",
86
+ "scenarios/remote/deploy.yml",
40
87
  "spec/.bacon",
41
88
  "spec/init_spec.rb",
42
89
  "spec/install_spec.rb",
90
+ "spec/integration/invalid_configuration_spec.rb",
91
+ "spec/integration/local_deployments_spec.rb",
92
+ "spec/integration/remote_deployments_spec.rb",
43
93
  "spec/spec_helper.rb",
44
94
  "spec/wd_command_spec.rb",
45
95
  "spec/wd_role_command_spec.rb",
@@ -57,6 +107,9 @@ Gem::Specification.new do |s|
57
107
  s.test_files = [
58
108
  "spec/init_spec.rb",
59
109
  "spec/install_spec.rb",
110
+ "spec/integration/invalid_configuration_spec.rb",
111
+ "spec/integration/local_deployments_spec.rb",
112
+ "spec/integration/remote_deployments_spec.rb",
60
113
  "spec/spec_helper.rb",
61
114
  "spec/wd_command_spec.rb",
62
115
  "spec/wd_role_command_spec.rb",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whiskey_disk
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 4
10
- version: 0.6.4
9
+ - 10
10
+ version: 0.6.10
11
11
  platform: ruby
12
12
  authors:
13
13
  - Rick Bradley
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-26 00:00:00 -08:00
18
+ date: 2011-02-08 00:00:00 -06:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -40,10 +40,12 @@ executables:
40
40
  extensions: []
41
41
 
42
42
  extra_rdoc_files:
43
+ - README.integration_specs
43
44
  - README.markdown
44
45
  files:
45
46
  - CHANGELOG
46
47
  - MIT-LICENSE
48
+ - README.integration_specs
47
49
  - README.markdown
48
50
  - Rakefile
49
51
  - VERSION
@@ -62,9 +64,57 @@ files:
62
64
  - lib/whiskey_disk/config.rb
63
65
  - lib/whiskey_disk/helpers.rb
64
66
  - lib/whiskey_disk/rake.rb
67
+ - scenarios/git_repositories/config.git/HEAD
68
+ - scenarios/git_repositories/config.git/config
69
+ - scenarios/git_repositories/config.git/description
70
+ - scenarios/git_repositories/config.git/git-daemon-export-ok
71
+ - scenarios/git_repositories/config.git/hooks/applypatch-msg.sample
72
+ - scenarios/git_repositories/config.git/hooks/commit-msg.sample
73
+ - scenarios/git_repositories/config.git/hooks/post-commit.sample
74
+ - scenarios/git_repositories/config.git/hooks/post-receive.sample
75
+ - scenarios/git_repositories/config.git/hooks/post-update.sample
76
+ - scenarios/git_repositories/config.git/hooks/pre-applypatch.sample
77
+ - scenarios/git_repositories/config.git/hooks/pre-commit.sample
78
+ - scenarios/git_repositories/config.git/hooks/pre-rebase.sample
79
+ - scenarios/git_repositories/config.git/hooks/prepare-commit-msg.sample
80
+ - scenarios/git_repositories/config.git/hooks/update.sample
81
+ - scenarios/git_repositories/config.git/info/exclude
82
+ - scenarios/git_repositories/config.git/objects/17/6bf54cf17d1d1c24556dc059c4144a5df230e8
83
+ - scenarios/git_repositories/config.git/objects/20/e9ff3feaa8ede30f707e5f1b4356e3c02bb7ec
84
+ - scenarios/git_repositories/config.git/objects/45/117b1c775f0de415478dbf08ed9d667ab17d13
85
+ - scenarios/git_repositories/config.git/objects/71/eb5df52676e8e6efba471050b46978173af110
86
+ - scenarios/git_repositories/config.git/objects/d1/0bcd51fec41f854001e4d61f99d9e282a695d3
87
+ - scenarios/git_repositories/config.git/objects/e6/b02c66ad632e6b8535c4630cb8fe07732a72fc
88
+ - scenarios/git_repositories/config.git/objects/f9/49d5d8a4f12c91471e34d4e277239c35ebd10d
89
+ - scenarios/git_repositories/config.git/refs/heads/master
90
+ - scenarios/git_repositories/project.git/HEAD
91
+ - scenarios/git_repositories/project.git/config
92
+ - scenarios/git_repositories/project.git/description
93
+ - scenarios/git_repositories/project.git/git-daemon-export-ok
94
+ - scenarios/git_repositories/project.git/hooks/applypatch-msg.sample
95
+ - scenarios/git_repositories/project.git/hooks/commit-msg.sample
96
+ - scenarios/git_repositories/project.git/hooks/post-commit.sample
97
+ - scenarios/git_repositories/project.git/hooks/post-receive.sample
98
+ - scenarios/git_repositories/project.git/hooks/post-update.sample
99
+ - scenarios/git_repositories/project.git/hooks/pre-applypatch.sample
100
+ - scenarios/git_repositories/project.git/hooks/pre-commit.sample
101
+ - scenarios/git_repositories/project.git/hooks/pre-rebase.sample
102
+ - scenarios/git_repositories/project.git/hooks/prepare-commit-msg.sample
103
+ - scenarios/git_repositories/project.git/hooks/update.sample
104
+ - scenarios/git_repositories/project.git/info/exclude
105
+ - scenarios/git_repositories/project.git/objects/20/1c7641c2e42b0b904e5c1f793489d8b858e4da
106
+ - scenarios/git_repositories/project.git/objects/80/26076649ceccbe96a6292f2432652f08483035
107
+ - scenarios/git_repositories/project.git/objects/ef/2a88894d5421920b9dfe67a9a4d8043830e62e
108
+ - scenarios/git_repositories/project.git/refs/heads/master
109
+ - scenarios/invalid/deploy.yml
110
+ - scenarios/local/deploy.yml
111
+ - scenarios/remote/deploy.yml
65
112
  - spec/.bacon
66
113
  - spec/init_spec.rb
67
114
  - spec/install_spec.rb
115
+ - spec/integration/invalid_configuration_spec.rb
116
+ - spec/integration/local_deployments_spec.rb
117
+ - spec/integration/remote_deployments_spec.rb
68
118
  - spec/spec_helper.rb
69
119
  - spec/wd_command_spec.rb
70
120
  - spec/wd_role_command_spec.rb
@@ -111,6 +161,9 @@ summary: embarrassingly fast deployments.
111
161
  test_files:
112
162
  - spec/init_spec.rb
113
163
  - spec/install_spec.rb
164
+ - spec/integration/invalid_configuration_spec.rb
165
+ - spec/integration/local_deployments_spec.rb
166
+ - spec/integration/remote_deployments_spec.rb
114
167
  - spec/spec_helper.rb
115
168
  - spec/wd_command_spec.rb
116
169
  - spec/wd_role_command_spec.rb