kikubari 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Kikubari::Deploy::GitDeployer do
4
+ let(:git_config) do
5
+ Kikubari::Deploy::Configuration.new(
6
+ "#{RSpec.configuration.deploy_files}/deploy_git.yml",
7
+ deploy_folder: RSpec.configuration.target_folder,
8
+ debug: false,
9
+ dry_run: false,
10
+ environment: 'production',
11
+ rollback: false)
12
+ end
13
+
14
+ let(:deployer) { Kikubari::Deploy::GitDeployer.new(git_config) }
15
+
16
+ before :all do
17
+ clear_target_project
18
+
19
+ end
20
+
21
+ it "clones the repository in the version folder" do
22
+ deployer.create_deploy_structure
23
+ deployer.deploy
24
+ expect(Dir.glob("#{deployer.config.env_time_folder}/*").count).to be > 0
25
+ end
26
+
27
+ it "removes the .git folder after cloning" do
28
+ deployer.create_deploy_structure
29
+ deployer.deploy
30
+ expect(Dir.exist?("#{deployer.config.env_time_folder}/.git")).to be_falsy
31
+ end
32
+ end
@@ -0,0 +1,23 @@
1
+ require 'pry'
2
+ require 'kikubari'
3
+
4
+ root_folder = Pathname.new(File.expand_path(__dir__))
5
+
6
+ module ProjectHelper
7
+ def clear_target_project
8
+ FileUtils.mkdir_p(RSpec.configuration.target_folder) unless Dir.exist?(RSpec.configuration.target_folder)
9
+ FileUtils.rm_rf(Dir.glob("#{RSpec.configuration.target_folder}/*"))
10
+ end
11
+ end
12
+
13
+ RSpec.configure do |c|
14
+ c.add_setting :src_folder
15
+ c.add_setting :target_folder
16
+ c.add_setting :deploy_files
17
+
18
+ c.src_folder = root_folder.join('project')
19
+ c.target_folder = root_folder.join('project_dfolder')
20
+ c.deploy_files = root_folder.join('deploy_files')
21
+ c.include ProjectHelper
22
+
23
+ end
metadata CHANGED
@@ -1,111 +1,87 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: kikubari
3
- version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 3
10
- version: 0.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Jose Antonio Pio Gil
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-05-23 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- prerelease: false
22
- type: :development
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 25
29
- segments:
30
- - 1
31
- - 3
32
- - 1
33
- version: 1.3.1
34
- version_requirements: *id001
35
- name: rspec
36
- - !ruby/object:Gem::Dependency
37
- prerelease: false
11
+ date: 2016-04-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pry
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.10'
38
20
  type: :development
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
48
- version_requirements: *id002
49
- name: bundler
50
- - !ruby/object:Gem::Dependency
51
21
  prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.4'
52
34
  type: :development
53
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ~>
57
- - !ruby/object:Gem::Version
58
- hash: 49
59
- segments:
60
- - 1
61
- - 8
62
- - 3
63
- version: 1.8.3
64
- version_requirements: *id003
65
- name: jeweler
66
- - !ruby/object:Gem::Dependency
67
35
  prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '11.1'
68
48
  type: :development
69
- requirement: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
78
- version_requirements: *id004
79
- name: rcov
80
- - !ruby/object:Gem::Dependency
81
49
  prerelease: false
82
- type: :development
83
- requirement: &id005 !ruby/object:Gem::Requirement
84
- none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- hash: 3
89
- segments:
90
- - 0
91
- version: "0"
92
- version_requirements: *id005
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '11.1'
55
+ - !ruby/object:Gem::Dependency
93
56
  name: git
94
- description: " Naive multiframework deployer for handle server deployments with some care about the code replacement. Also an experimental project."
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ description: " Naive multiframework deployer for handle server deployments with some
70
+ care about the code replacement. Also an experimental project."
95
71
  email: josetonyp@latizana.com
96
- executables:
72
+ executables:
97
73
  - kikubari
98
74
  extensions: []
99
-
100
- extra_rdoc_files:
75
+ extra_rdoc_files:
101
76
  - LICENSE.txt
102
- - README.rdoc
103
- files:
104
- - .document
77
+ - README.md
78
+ files:
79
+ - ".document"
80
+ - ".travis.yml"
105
81
  - Gemfile
106
82
  - Gemfile.lock
107
83
  - LICENSE.txt
108
- - README.rdoc
84
+ - README.md
109
85
  - Rakefile
110
86
  - VERSION
111
87
  - bin/kikubari
@@ -115,55 +91,41 @@ files:
115
91
  - lib/deploy_logger.rb
116
92
  - lib/deployer/deployer.rb
117
93
  - lib/deployer/deployer_git.rb
118
- - lib/deployer/deployer_git_symfony.rb
119
94
  - lib/deployer/deployer_git_wordpress.rb
120
95
  - lib/kikubari.rb
121
- - test/deploy_files/databases.yml
122
- - test/deploy_files/deploy.yml
123
- - test/deploy_files/deploy_git.yml
124
- - test/deploy_files/deploy_git_test_file.yml
125
- - test/deploy_files/deploy_symlink.yml
126
- - test/deploy_files/empty.yml
127
- - test/deploy_files/one_file_test.yml
128
- - test/deploy_files/one_folder.yml
129
- - test/helper.rb
130
- - test/lib/deploy_spec.rb
131
- - test/lib/deployers/git.rb
132
- - test/lib/deployers/mysql_backup.rb
133
- - test/lib/deployers/symfony_git.rb
134
- - test/spec_helper.rb
96
+ - spec/deploy_files/databases.yml
97
+ - spec/deploy_files/deploy.yml
98
+ - spec/deploy_files/deploy_git.yml
99
+ - spec/deploy_files/deploy_git_test_file.yml
100
+ - spec/deploy_files/deploy_symlink.yml
101
+ - spec/deploy_files/empty.yml
102
+ - spec/deploy_files/one_file_test.yml
103
+ - spec/deploy_files/one_folder.yml
104
+ - spec/lib/deploy_spec.rb
105
+ - spec/lib/deployers/git.rb
106
+ - spec/spec_helper.rb
135
107
  homepage: https://github.com/josetonyp/kikubari
136
- licenses:
108
+ licenses:
137
109
  - MIT
110
+ metadata: {}
138
111
  post_install_message:
139
112
  rdoc_options: []
140
-
141
- require_paths:
113
+ require_paths:
142
114
  - lib
143
- required_ruby_version: !ruby/object:Gem::Requirement
144
- none: false
145
- requirements:
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
146
117
  - - ">="
147
- - !ruby/object:Gem::Version
148
- hash: 3
149
- segments:
150
- - 0
151
- version: "0"
152
- required_rubygems_version: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
118
+ - !ruby/object:Gem::Version
119
+ version: 2.0.0
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
155
122
  - - ">="
156
- - !ruby/object:Gem::Version
157
- hash: 3
158
- segments:
159
- - 0
160
- version: "0"
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
161
125
  requirements: []
162
-
163
126
  rubyforge_project:
164
- rubygems_version: 1.8.17
127
+ rubygems_version: 2.5.1
165
128
  signing_key:
166
- specification_version: 3
129
+ specification_version: 4
167
130
  summary: Naive multiframework deploy system
168
131
  test_files: []
169
-
@@ -1,25 +0,0 @@
1
- = kikubari
2
-
3
- Naive deploy system for deploy agnostic code. Kikubari only take care about repository, folder structure and file configurations. It also will run before an after task from commmand line and log it to the deployment log.
4
-
5
- Usage:
6
-
7
- * Create a deploy.yml file in your deploy folder
8
- * Run deploy "path_folder" "environment"
9
- * Have a beer and see it work
10
-
11
-
12
- == Contributing to kikubari
13
-
14
- * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
15
- * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
16
- * Fork the project.
17
- * Start a feature/bugfix branch.
18
- * Commit and push until you are happy with your contribution.
19
- * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
20
- * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
21
-
22
- == Copyright
23
-
24
- Copyright (c) 2012 Jose Antonio Pio Gil. See LICENSE.txt for further details.
25
-
@@ -1,15 +0,0 @@
1
- # Bridge Class to link a deployer with it's deploy strategies.
2
- # Framewokr:: Symfony 1.2 - 1.4
3
- # Repository:: Git
4
- #
5
- # Could be simply extend Dir class with extra functions but this class meant to be a Deploy System Directory class handler
6
- # Author:: Jose A Pio (mailto:josetonyp@gmail.com)
7
- # Copyright:: Copyright (c) 2011
8
- # License:: Distributes under the same terms as Ruby
9
- module Kikubari
10
- class Deploy
11
- class SymfonyGitDeployer < GitDeployer
12
-
13
- end
14
- end
15
- end
@@ -1,18 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'test/unit'
11
- require 'shoulda'
12
-
13
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
- $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- require 'kikubari'
16
-
17
- class Test::Unit::TestCase
18
- end
@@ -1,94 +0,0 @@
1
- require File.expand_path( File.join( File.dirname(__FILE__), '..', 'spec_helper.rb' ) ).to_s
2
-
3
- describe Kikubari::Deploy::Deployer do
4
-
5
- before :each do
6
- @folder = "test/project_dfolder"
7
- @df_folder = "test/deploy_files"
8
- `rm -fR #{@folder}/*`
9
-
10
- @config = Kikubari::Deploy::Configuration.new( "#{@df_folder}/deploy_symlink.yml", :deploy_folder => @folder, :debug => false, :dry_run => false , :environment => "production", :rollback => false )
11
- @deployer = Kikubari::Deploy::Deployer.new(@config)
12
-
13
- end
14
-
15
- after :all do
16
- `rm -fR #{@folder}/*`
17
- end
18
-
19
- it "should create an environment folder" do
20
- @deployer.create_environment_folder.should satisfy{ |deployer| File.directory?(deployer.config.environment_folder) }
21
- end
22
-
23
- it "should create a deploy version folder" do
24
- @deployer.create_version_folder.should satisfy{ |deployer| File.directory?(deployer.config.env_time_folder) }
25
- end
26
-
27
- it "should create the symlink to current folder" do
28
- @deployer.create_version_folder.create_current_symlink_folder.should satisfy{ |deployer| File.symlink?(deployer.config.current_deploy_folder) }
29
- end
30
-
31
- it "sould create a folder in the folder structure" do
32
- @deployer.create_environment_folder.create_version_folder.create_current_symlink_folder
33
- @deployer.create_structure.should satisfy{ |deployer| File.directory?( "#{deployer.config.deploy_folder}/cache/#{@config.environment}") }
34
- end
35
-
36
- it "should create a Symlinked Strcuture folder" do
37
- @deployer.create_environment_folder.create_version_folder.create_current_symlink_folder
38
- @deployer.create_structure.create_sylinked_folders.should satisfy{ |deployer| File.symlink?( "#{deployer.config.env_time_folder}/cache") }
39
- end
40
-
41
- it "should not create the symlinked folder is folder already exist" do
42
- @deployer.create_environment_folder.create_version_folder.create_current_symlink_folder
43
- @deployer.create_structure
44
- FileUtils.mkdir_p "#{@config.env_time_folder}/cache"
45
- expect {
46
- @deployer.create_sylinked_folders
47
- }.should raise_error
48
- end
49
-
50
- it "should verify a file in the folder and raise an error" do
51
- @deployer.create_environment_folder.create_version_folder.create_current_symlink_folder
52
- expect{@deployer.test_files}.should raise_error
53
- end
54
-
55
- it "should verify a file in the folder" do
56
- @deployer.create_environment_folder.create_version_folder.create_current_symlink_folder
57
- expect{@deployer.test_files}.should raise_error
58
- end
59
-
60
- it "should create a symlink file from tested files" do
61
- @deployer.create_deploy_structure
62
- `mkdir -p #{@config.env_time_folder}/config` ## Faking the canfig folder that should come with the repository
63
- `echo "hola" >> #{@folder}/config/#{@config.environment}/databases.yml`
64
- @deployer.create_symlinked_files.should satisfy do |deployer|
65
- File.symlink?( "#{@config.env_time_folder}/config/databases.yml")
66
- end
67
- end
68
-
69
- it "should execute the after run tasks" do
70
- @deployer.create_deploy_structure
71
- `mkdir -p #{@config.env_time_folder}/config` ## Faking the canfig folder that should come with the repository
72
- `echo "hola" >> #{@folder}/config/#{@config.environment}/databases.yml`
73
- @deployer.after_deploy_run.should satisfy { |deployer| File.directory?("#{@config.env_time_folder}/new_folder") }
74
- end
75
-
76
- it "should capture STDERR messages in a variable is command is not valid" do
77
- @deployer.create_deploy_structure
78
- @deployer.config.after['run'] = [ 'This is not a command' ]
79
- out = @deployer.after_deploy_run
80
- out.count.should == 1
81
- out[0][:stdout].should == ""
82
- out[0][:stderr].should_not == ""
83
- end
84
-
85
- it "should not capture STDERR messages in a variable if command is valid" do
86
- @deployer.create_deploy_structure
87
- @deployer.config.after['run'] = [ 'ls -lah' ]
88
- out = @deployer.after_deploy_run
89
- out.count.should == 1
90
- out[0][:stdout].should_not == ""
91
- out[0][:stderr].should == ""
92
- end
93
-
94
- end