sbci 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ require 'fileutils'
2
+ require 'spec_helper'
3
+ require 'sbci'
4
+
5
+ describe "sbci cli" do
6
+
7
+ before(:all) do
8
+ @options = { :job_name => "test_job",
9
+ :path => "spec/fixtures/jenkins",
10
+ :host => "localhost",
11
+ :port => 8080,
12
+ :force => true }
13
+ end
14
+
15
+ it "should pass the correct parameters" do
16
+ sbci "debug #{@options.map{ |k,v| "--#{k.to_s.gsub('_','-')} #{v}" }.join(' ')}"
17
+ stdout.should == YAML::dump(SBCI::Job.new(@options))
18
+ stderr.should be_empty
19
+ end
20
+
21
+ end
@@ -0,0 +1,151 @@
1
+ require 'fileutils'
2
+ require 'spec_helper'
3
+ require 'sbci'
4
+
5
+ describe SBCI::Job do
6
+
7
+ before(:all) do
8
+ @job_name = "test_job"
9
+ @path = "spec/fixtures/jenkins"
10
+ @sb = SBCI::Job.new(:path => @path, :job_name => @job_name)
11
+ end
12
+
13
+ before(:each) do
14
+ @sb.delete_config
15
+ VCR.use_cassette("delete") do
16
+ @sb.delete
17
+ end
18
+ end
19
+
20
+ context "Initializing" do
21
+
22
+ it "should initialize with default parameters and git branch and repo" do
23
+ sb = SBCI::Job.new
24
+ sb.host.should == "localhost"
25
+ sb.port.should == 8080
26
+ sb.branch_name == "master"
27
+ sb.job_name == "sbci_build"
28
+ sb.force == false
29
+ end
30
+
31
+ it "should initialize with specified parameters" do
32
+ sb = SBCI::Job.new(:host => "example.com", :port => 8000, :job_name => @job_name, :force => true)
33
+ sb.host.should == "example.com"
34
+ sb.port.should == 8000
35
+ sb.job_name.should == @job_name
36
+ sb.force == true
37
+ end
38
+
39
+ end
40
+
41
+ context "Creating" do
42
+
43
+ it "should create a configuration xml template file" do
44
+ @sb.config_exists?.should be_false
45
+ @sb.create
46
+ @sb.config_exists?.should be_true
47
+ end
48
+
49
+ it "should force create a configuration xml template file without prompt" do
50
+ @sb.config_exists?.should be_false
51
+ @sb.create
52
+ @sb.config_exists?.should be_true
53
+ @sb.force = true
54
+ @sb.create
55
+ @sb.should_not_receive(:print)
56
+ @sb.config_exists?.should be_true
57
+ end
58
+
59
+ end
60
+
61
+ context "Publishing" do
62
+
63
+ before(:each) do
64
+ @sb.create
65
+ end
66
+
67
+ it "should publish a configuration xml to create a new Jenkins job" do
68
+ VCR.use_cassette("publish") do
69
+ @sb.published?.should be_false
70
+ @sb.publish.code.should == 200
71
+ end
72
+ end
73
+
74
+ end
75
+
76
+ context "Re-publishing" do
77
+
78
+ before(:each) do
79
+ @sb.create
80
+ VCR.use_cassette("publish") do
81
+ @sb.publish
82
+ end
83
+ end
84
+
85
+ it "should re-publish a configuration xml to update an existing Jenkins job" do
86
+ VCR.use_cassette("republish") do
87
+ @sb.published?.should be_true
88
+ @sb.stub(:print)
89
+ @sb.stub(:gets).and_return('y')
90
+ @sb.publish.code.should == 200
91
+ end
92
+ end
93
+
94
+ it "should force re-publish an existing Jenkins job without prompting" do
95
+ VCR.use_cassette("republish") do
96
+ @sb.published?.should be_true
97
+ @sb.force = true
98
+ @sb.should_not_receive(:print)
99
+ @sb.publish.code.should == 200
100
+ end
101
+ end
102
+
103
+ end
104
+
105
+ context "Dumping" do
106
+
107
+ before(:each) do
108
+ @sb.create
109
+ VCR.use_cassette("publish") do
110
+ @sb.publish
111
+ end
112
+ end
113
+
114
+ it "should dump a configuration xml from an existing project" do
115
+ @sb.delete_config
116
+ @sb.config_exists?.should be_false
117
+ VCR.use_cassette("dump") do
118
+ @sb.dump.code.should == 200
119
+ @sb.config_exists?.should be_true
120
+ end
121
+ end
122
+
123
+ it "should force dump a configuration xml over an existing one without prompt" do
124
+ @sb.config_exists?.should be_true
125
+ @sb.force = true
126
+ @sb.should_not_receive(:print)
127
+ VCR.use_cassette("dump") do
128
+ @sb.dump.code.should == 200
129
+ end
130
+ end
131
+
132
+ end
133
+
134
+ context "Deleting" do
135
+
136
+ before(:each) do
137
+ @sb.create
138
+ end
139
+
140
+ it "should delete a job" do
141
+ VCR.use_cassette("publish") do
142
+ @sb.publish
143
+ end
144
+ VCR.use_cassette("delete") do
145
+ @sb.delete.should be_true
146
+ end
147
+ end
148
+
149
+ end
150
+
151
+ end
@@ -0,0 +1,12 @@
1
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
2
+ require 'bahia'
3
+ require 'net/http'
4
+ require 'vcr'
5
+
6
+ VCR.configure do |c|
7
+ c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
8
+ c.hook_into :webmock
9
+ c.default_cassette_options = { :record => :once }
10
+ end
11
+
12
+ RSpec.configure {|c| c.include Bahia }
metadata ADDED
@@ -0,0 +1,190 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sbci
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.0
6
+ platform: ruby
7
+ authors:
8
+ - Egils Muzis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2012-07-06 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rest-client
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :runtime
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: grit
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :runtime
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: trollop
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ type: :runtime
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: bahia
50
+ prerelease: false
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ type: :development
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: guard
61
+ prerelease: false
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ type: :development
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
71
+ name: guard-rspec
72
+ prerelease: false
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: "0"
79
+ type: :development
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
82
+ name: growl
83
+ prerelease: false
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ type: :development
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
93
+ name: rspec
94
+ prerelease: false
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: "0"
101
+ type: :development
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
104
+ name: vcr
105
+ prerelease: false
106
+ requirement: &id009 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: "0"
112
+ type: :development
113
+ version_requirements: *id009
114
+ - !ruby/object:Gem::Dependency
115
+ name: webmock
116
+ prerelease: false
117
+ requirement: &id010 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: "0"
123
+ type: :development
124
+ version_requirements: *id010
125
+ description: Utility to easily export or import and Jenkins job configuration
126
+ email:
127
+ - egils.muzis@xbridge.com
128
+ executables:
129
+ - sbci
130
+ extensions: []
131
+
132
+ extra_rdoc_files: []
133
+
134
+ files:
135
+ - .gitignore
136
+ - .rspec
137
+ - Gemfile
138
+ - Guardfile
139
+ - LICENSE
140
+ - README.md
141
+ - Rakefile
142
+ - bin/sbci
143
+ - lib/config.xml
144
+ - lib/sbci.rb
145
+ - lib/sbci/version.rb
146
+ - sbci.gemspec
147
+ - spec/.DS_Store
148
+ - spec/fixtures/vcr_cassettes/delete.yml
149
+ - spec/fixtures/vcr_cassettes/dump.yml
150
+ - spec/fixtures/vcr_cassettes/publish.yml
151
+ - spec/fixtures/vcr_cassettes/republish.yml
152
+ - spec/sbci_cli_spec.rb
153
+ - spec/sbci_spec.rb
154
+ - spec/spec_helper.rb
155
+ homepage: https://github.com/simplybusiness/sbci
156
+ licenses: []
157
+
158
+ post_install_message:
159
+ rdoc_options: []
160
+
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ none: false
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: "0"
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: "0"
175
+ requirements: []
176
+
177
+ rubyforge_project:
178
+ rubygems_version: 1.8.24
179
+ signing_key:
180
+ specification_version: 3
181
+ summary: Manage your Jenkins jobs through this easy to use command-line interface
182
+ test_files:
183
+ - spec/.DS_Store
184
+ - spec/fixtures/vcr_cassettes/delete.yml
185
+ - spec/fixtures/vcr_cassettes/dump.yml
186
+ - spec/fixtures/vcr_cassettes/publish.yml
187
+ - spec/fixtures/vcr_cassettes/republish.yml
188
+ - spec/sbci_cli_spec.rb
189
+ - spec/sbci_spec.rb
190
+ - spec/spec_helper.rb