jenkins-maestrodev 0.6.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Changelog.md +58 -0
- data/Gemfile +3 -0
- data/README.md +162 -0
- data/Rakefile +110 -0
- data/bin/jenkins +9 -0
- data/cucumber.yml +8 -0
- data/features/build_details.feature +44 -0
- data/features/configure.feature +36 -0
- data/features/default_host.feature +26 -0
- data/features/development.feature +14 -0
- data/features/listing_jobs.feature +34 -0
- data/features/manage_jobs.feature +263 -0
- data/features/manage_slave_nodes.feature +83 -0
- data/features/step_definitions/common_steps.rb +192 -0
- data/features/step_definitions/fixture_project_steps.rb +8 -0
- data/features/step_definitions/jenkins_steps.rb +116 -0
- data/features/step_definitions/scm_steps.rb +12 -0
- data/features/support/common.rb +37 -0
- data/features/support/env.rb +19 -0
- data/features/support/hooks.rb +16 -0
- data/features/support/jenkins_helpers.rb +6 -0
- data/features/support/matchers.rb +10 -0
- data/fixtures/jenkins/envfile.hpi +0 -0
- data/fixtures/jenkins/git.hpi +0 -0
- data/fixtures/jenkins/github.hpi +0 -0
- data/fixtures/jenkins/greenballs.hpi +0 -0
- data/fixtures/jenkins/rake.hpi +0 -0
- data/fixtures/jenkins/ruby.hpi +0 -0
- data/fixtures/projects/erlang/rebar.config +1 -0
- data/fixtures/projects/non-bundler/Rakefile +4 -0
- data/fixtures/projects/rails-3/.gitignore +4 -0
- data/fixtures/projects/rails-3/Gemfile +30 -0
- data/fixtures/projects/rails-3/Gemfile.lock +74 -0
- data/fixtures/projects/rails-3/README +256 -0
- data/fixtures/projects/rails-3/Rakefile +7 -0
- data/fixtures/projects/rails-3/app/controllers/application_controller.rb +3 -0
- data/fixtures/projects/rails-3/app/helpers/application_helper.rb +2 -0
- data/fixtures/projects/rails-3/app/views/layouts/application.html.erb +14 -0
- data/fixtures/projects/rails-3/config.ru +4 -0
- data/fixtures/projects/rails-3/config/application.rb +42 -0
- data/fixtures/projects/rails-3/config/boot.rb +13 -0
- data/fixtures/projects/rails-3/config/database.yml +22 -0
- data/fixtures/projects/rails-3/config/environment.rb +5 -0
- data/fixtures/projects/rails-3/config/environments/development.rb +26 -0
- data/fixtures/projects/rails-3/config/environments/production.rb +49 -0
- data/fixtures/projects/rails-3/config/environments/test.rb +35 -0
- data/fixtures/projects/rails-3/config/initializers/backtrace_silencers.rb +7 -0
- data/fixtures/projects/rails-3/config/initializers/inflections.rb +10 -0
- data/fixtures/projects/rails-3/config/initializers/mime_types.rb +5 -0
- data/fixtures/projects/rails-3/config/initializers/secret_token.rb +7 -0
- data/fixtures/projects/rails-3/config/initializers/session_store.rb +8 -0
- data/fixtures/projects/rails-3/config/locales/en.yml +5 -0
- data/fixtures/projects/rails-3/config/routes.rb +58 -0
- data/fixtures/projects/rails-3/db/seeds.rb +7 -0
- data/fixtures/projects/rails-3/doc/README_FOR_APP +2 -0
- data/fixtures/projects/rails-3/lib/tasks/.gitkeep +0 -0
- data/fixtures/projects/rails-3/public/404.html +26 -0
- data/fixtures/projects/rails-3/public/422.html +26 -0
- data/fixtures/projects/rails-3/public/500.html +26 -0
- data/fixtures/projects/rails-3/public/favicon.ico +0 -0
- data/fixtures/projects/rails-3/public/images/rails.png +0 -0
- data/fixtures/projects/rails-3/public/index.html +239 -0
- data/fixtures/projects/rails-3/public/javascripts/application.js +2 -0
- data/fixtures/projects/rails-3/public/javascripts/controls.js +965 -0
- data/fixtures/projects/rails-3/public/javascripts/dragdrop.js +974 -0
- data/fixtures/projects/rails-3/public/javascripts/effects.js +1123 -0
- data/fixtures/projects/rails-3/public/javascripts/prototype.js +6001 -0
- data/fixtures/projects/rails-3/public/javascripts/rails.js +175 -0
- data/fixtures/projects/rails-3/public/robots.txt +5 -0
- data/fixtures/projects/rails-3/public/stylesheets/.gitkeep +0 -0
- data/fixtures/projects/rails-3/script/rails +6 -0
- data/fixtures/projects/rails-3/test/performance/browsing_test.rb +9 -0
- data/fixtures/projects/rails-3/test/test_helper.rb +13 -0
- data/fixtures/projects/rails-3/vendor/plugins/.gitkeep +0 -0
- data/fixtures/projects/ruby/Gemfile +3 -0
- data/fixtures/projects/ruby/Gemfile.lock +10 -0
- data/fixtures/projects/ruby/Rakefile +4 -0
- data/jenkins.gemspec +34 -0
- data/lib/jenkins.rb +6 -0
- data/lib/jenkins/api.rb +312 -0
- data/lib/jenkins/cli.rb +361 -0
- data/lib/jenkins/cli/formatting.rb +53 -0
- data/lib/jenkins/config.rb +27 -0
- data/lib/jenkins/core_ext/hash.rb +9 -0
- data/lib/jenkins/core_ext/object/blank.rb +77 -0
- data/lib/jenkins/hudson-cli.jar +0 -0
- data/lib/jenkins/job_config_builder.rb +417 -0
- data/lib/jenkins/project_scm.rb +22 -0
- data/lib/jenkins/remote.rb +11 -0
- data/lib/jenkins/version.rb +3 -0
- data/spec/api_spec.rb +67 -0
- data/spec/fixtures/ec2_global.config.xml +103 -0
- data/spec/fixtures/erlang.single.config.xml +59 -0
- data/spec/fixtures/rails.multi.config.xml +82 -0
- data/spec/fixtures/rails.single.config.triggers.xml +84 -0
- data/spec/fixtures/rails.single.config.xml +80 -0
- data/spec/fixtures/ruby.multi-ruby-multi-labels.config.xml +84 -0
- data/spec/fixtures/ruby.multi.config.xml +77 -0
- data/spec/fixtures/ruby.single.config.xml +58 -0
- data/spec/fixtures/ruby.user-defined-axis.config.xml +69 -0
- data/spec/fixtures/therubyracer.config.xml +77 -0
- data/spec/hash_key_cleaner_spec.rb +25 -0
- data/spec/job_config_builder_spec.rb +233 -0
- data/spec/spec_helper.rb +15 -0
- metadata +291 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8395a89a3f1c2fcf68c4442932198f0df2a3fa92
|
4
|
+
data.tar.gz: 07d3c91e1524440ff50f1916a8198ccf713ad8b0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: dfa09e1ae6668649a66aa264524a90b497fdc58e91fba174c5de6a016b42d0fc80369b5361966a3f6f4a2443918e0d1f368f3478a599fe8c33f9e304a94427bb
|
7
|
+
data.tar.gz: f3af54d792b44ffde391b713d6c9ce7da9146df1f8c70a2b2579484484572b48476fc8e19cee627ee8484b76e1fe5be55e6f662284587b5717bbf44314e0e46f
|
data/Changelog.md
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## 0.6.8 - 2011/12/30
|
4
|
+
|
5
|
+
* re-releasing 0.6.7 which failed to register in RubyGems.org
|
6
|
+
|
7
|
+
## 0.6.4 - 2011/04/13
|
8
|
+
|
9
|
+
* change from json to json_pure
|
10
|
+
|
11
|
+
## 0.6.3 - 2011/04/12
|
12
|
+
|
13
|
+
* fixes for ruby 1.9
|
14
|
+
|
15
|
+
## 0.6.2 - 2011/03/17
|
16
|
+
|
17
|
+
* add `build_details` command for fetching the result of a particular build.
|
18
|
+
* add instructions for running with non-english locale
|
19
|
+
* remove, fix obsolete gem dependencies
|
20
|
+
|
21
|
+
## 0.5.0 - 2010/12/1
|
22
|
+
|
23
|
+
* hudson warfile no longer bundled with hudson gem
|
24
|
+
* rubygem is now 235K instead of 31M!
|
25
|
+
* upgrade hudson server and related plugins without requiring a new gem release
|
26
|
+
* hudson gem now fully drinks the bundler koolaid.
|
27
|
+
* hudson create
|
28
|
+
* --node-labels 'ubuntu,gentoo' - run tests against multiple slave nodes by their label
|
29
|
+
* --no-template - do not generate any default steps (well, a silly one)
|
30
|
+
* hudson add_node
|
31
|
+
* --vagrant - provide alternate default values when adding nodes if the node is a Vagrant VM
|
32
|
+
* hudson default_host
|
33
|
+
* NEW - displays the current default host:port URI
|
34
|
+
|
35
|
+
## 0.4.0 - 2010/11/11
|
36
|
+
|
37
|
+
* hudson create
|
38
|
+
* --rubies '1.8.7,1.9.2,rbx-head,jruby' - uses RVM and Hudson's Axes support to run tests within different Ruby environments
|
39
|
+
* --scm git://some-alternate.com/repo.git - can override the "origin" URI
|
40
|
+
* --scm-branches 'master,other,branches' - specify which branches can be pulled from to trigger tests
|
41
|
+
|
42
|
+
* hudson job
|
43
|
+
* Can dump information/status about a job
|
44
|
+
|
45
|
+
## 0.3.1 - 2010/11/8
|
46
|
+
|
47
|
+
* fixed error in the rails3 template's test for schema.rb
|
48
|
+
|
49
|
+
## 0.3.0 - 2010/11/8
|
50
|
+
|
51
|
+
MAJOR RELEASE!
|
52
|
+
|
53
|
+
* All new commands for CLI: build, remove, nodes, add_node
|
54
|
+
* Updated to Hudson CI 1.381
|
55
|
+
|
56
|
+
## 0.2.7 2010/8/25
|
57
|
+
|
58
|
+
* Updated to Hudson CI 1.373
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
Jenkins
|
2
|
+
======
|
3
|
+
|
4
|
+
[Jenkins CI](http://jenkins-ci.org/) is a sweet continuous integration
|
5
|
+
platform. Jenkins.rb makes it easy to get started, add/remove Ruby
|
6
|
+
jobs and slave nodes; either from a CLI or an API.
|
7
|
+
|
8
|
+
|
9
|
+
* Email: [http://groups.google.com/group/jenkinsrb](http://groups.google.com/group/jenkinsrb)
|
10
|
+
* IRC: [irc://irc.freenode.net/jenkins.rb](irc://irc.freenode.net/jenkins.rb)
|
11
|
+
* CI: [http://travis-ci.org/cowboyd/jenkins.rb](http://travis-ci.org/cowboyd/jenkins.rb)
|
12
|
+
|
13
|
+
Install
|
14
|
+
=======
|
15
|
+
|
16
|
+
gem install jenkins
|
17
|
+
|
18
|
+
You do not need to download Jenkins CI. It is bundled in the RubyGem.
|
19
|
+
|
20
|
+
Example
|
21
|
+
=======
|
22
|
+
|
23
|
+
Jenkins.rb is continuously tested using Jenkins at [http://jenkins.thefrontside.net/job/jenkins.rb/](http://jenkins.thefrontside.net/job/jenkins.rb/).
|
24
|
+
|
25
|
+
The `jenkins` application allows you to see the projects/jobs and their statuses:
|
26
|
+
|
27
|
+
$ jenkins list --host jenkins.thefrontside.net --port 80
|
28
|
+
jenkins.rb - http://jenkins.thefrontside.net/job/jenkins.rb/
|
29
|
+
TheRubyRacer - http://jenkins.thefrontside.net/job/TheRubyRacer/
|
30
|
+
|
31
|
+
Alternately use environment variables:
|
32
|
+
|
33
|
+
$ JENKINS_HOST=jenkins.thefrontside.net JENKINS_PORT=80 jenkins list
|
34
|
+
|
35
|
+
Alternately, it will remember the last Jenkins CI master used.
|
36
|
+
|
37
|
+
$ jenkins list
|
38
|
+
|
39
|
+
Usage
|
40
|
+
=====
|
41
|
+
|
42
|
+
To run your own Jenkins server (by default opens at http://localhost:3001):
|
43
|
+
|
44
|
+
Usage: jenkins server [options]
|
45
|
+
-p, --port [3001] run jenkins server on this port
|
46
|
+
-c, --control [3002] set the shutdown/control port
|
47
|
+
--daemon fork into background and run as a daemon
|
48
|
+
--logfile [PATH] redirect log messages to this file
|
49
|
+
-k, --kill send shutdown signal to control port
|
50
|
+
--home [/Users/drnic/.jenkins/server] use this directory to store server data
|
51
|
+
|
52
|
+
The remaining CLI tasks are for communicating with a running Jenkins server; either the one created above or hosted remotely.
|
53
|
+
|
54
|
+
### Jobs
|
55
|
+
|
56
|
+
To list Jobs/Projects on a Jenkins server:
|
57
|
+
|
58
|
+
Usage: jenkins list [options]
|
59
|
+
|
60
|
+
To add Jobs/Projects (create a Job) on a Jenkins server:
|
61
|
+
|
62
|
+
Usage: jenkins create PROJECT_PATH [options]
|
63
|
+
--public-scm use public scm URL
|
64
|
+
--template [ruby] template of job steps (available: rails,rails3,ruby,rubygem,erlang)
|
65
|
+
--assigned-node [ASSIGNED-NODE] only use slave nodes with this label
|
66
|
+
--override override if job exists
|
67
|
+
--no-build create job without initial build
|
68
|
+
|
69
|
+
To trigger a Job to build:
|
70
|
+
|
71
|
+
Usage: jenkins build
|
72
|
+
|
73
|
+
To remove a Job from a Jenkins server:
|
74
|
+
|
75
|
+
Usage: jenkins remove PROJECT_PATH
|
76
|
+
|
77
|
+
### Slave nodes
|
78
|
+
|
79
|
+
To list slaves on a Jenkins server (including itself):
|
80
|
+
|
81
|
+
Usage: jenkins nodes
|
82
|
+
|
83
|
+
To add a remote machine/remote VM to a Jenkins server as a slave:
|
84
|
+
|
85
|
+
Usage: jenkins add_node SLAVE_HOST
|
86
|
+
--slave-port [22] SSH port for Jenkins to connect to slave node
|
87
|
+
--label [LABEL] Labels for a job --assigned_node to match against to select a slave. --master-key [MASTER-KEY] Location of master public key or identity file
|
88
|
+
--slave-fs [SLAVE-FS] Location of file system on slave for Jenkins to use
|
89
|
+
--name [NAME] Name of slave node (default SLAVE_HOST)
|
90
|
+
--slave-user [deploy] SSH user for Jenkins to connect to slave node
|
91
|
+
|
92
|
+
### Selecting a Jenkins CI server
|
93
|
+
|
94
|
+
**For all client-side commands, there are `--host` and `--port` options flags.** These are cached after first used, so are only required for the first request to a Jenkins CI server. For example:
|
95
|
+
|
96
|
+
jenkins create . --host localhost --port 3001
|
97
|
+
jenkins list
|
98
|
+
jenkins create . --override
|
99
|
+
|
100
|
+
Alternately, `$JENKINS_HOST` and `$JENKINS_PORT` can be provided in lieu of the cached target Jenkins CI server
|
101
|
+
|
102
|
+
JENKINS_HOST=localhost JENKINS_PORT=3001 jenkins list
|
103
|
+
|
104
|
+
|
105
|
+
Developer Instructions
|
106
|
+
======================
|
107
|
+
|
108
|
+
The dependencies for the gem and for developing the gem are managed by Bundler.
|
109
|
+
|
110
|
+
gem install bundler
|
111
|
+
git clone http://github.com/cowboyd/jenkins.rb.git
|
112
|
+
bundle install
|
113
|
+
|
114
|
+
The test suites expects Jenkins to speak English. If you are not using an
|
115
|
+
English locale prepare the terminal session running the test suite with:
|
116
|
+
|
117
|
+
export LC_ALL=en_US.UTF-8
|
118
|
+
|
119
|
+
The test suite is run with:
|
120
|
+
|
121
|
+
rake
|
122
|
+
|
123
|
+
This launches a Jenkins server, runs cucumber features, and kills the Jenkins server.
|
124
|
+
|
125
|
+
Alternately, manually launch the Jenkins server, run features and close the Jenkins server:
|
126
|
+
|
127
|
+
rake jenkins:server:test
|
128
|
+
rake cucumber:ok
|
129
|
+
rake jenkins:server:killtest
|
130
|
+
|
131
|
+
Contributors
|
132
|
+
============
|
133
|
+
|
134
|
+
* Charles Lowell
|
135
|
+
* Dr Nic Williams
|
136
|
+
* Bo Jeanes
|
137
|
+
|
138
|
+
License
|
139
|
+
=======
|
140
|
+
|
141
|
+
(The MIT License)
|
142
|
+
|
143
|
+
Copyright (c) 2010 Charles Lowell, cowboyd@thefrontside.net
|
144
|
+
|
145
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
146
|
+
a copy of this software and associated documentation files (the
|
147
|
+
'Software'), to deal in the Software without restriction, including
|
148
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
149
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
150
|
+
permit persons to whom the Software is furnished to do so, subject to
|
151
|
+
the following conditions:
|
152
|
+
|
153
|
+
The above copyright notice and this permission notice shall be
|
154
|
+
included in all copies or substantial portions of the Software.
|
155
|
+
|
156
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
157
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
158
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
159
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
160
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
161
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
162
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
require "rspec/core/rake_task"
|
5
|
+
RSpec::Core::RakeTask.new(:spec)
|
6
|
+
|
7
|
+
namespace :cucumber do
|
8
|
+
require 'cucumber/rake/task'
|
9
|
+
Cucumber::Rake::Task.new(:wip, 'Run features that are being worked on') do |t|
|
10
|
+
t.cucumber_opts = "--tags @wip"
|
11
|
+
end
|
12
|
+
Cucumber::Rake::Task.new(:ok, 'Run features that should be working') do |t|
|
13
|
+
t.cucumber_opts = "--tags ~@wip --tags ~@jenkins-server"
|
14
|
+
end
|
15
|
+
Cucumber::Rake::Task.new(:server, 'Run features that require a running server') do |t|
|
16
|
+
t.cucumber_opts = "--tags ~@wip --tags @jenkins-server"
|
17
|
+
end
|
18
|
+
task :all => [:ok, :wip]
|
19
|
+
end
|
20
|
+
|
21
|
+
desc 'Alias for cucumber:ok'
|
22
|
+
task :cucumber => 'cucumber:ok'
|
23
|
+
|
24
|
+
desc "Start test server; Run cucumber:ok; Kill Test Server;"
|
25
|
+
task :default => [:spec, "jenkins:server:killtest", "jenkins:server:test"] do
|
26
|
+
begin
|
27
|
+
result = Rake::Task["cucumber:ok"].invoke
|
28
|
+
ensure
|
29
|
+
Rake::Task["jenkins:server:killtest"].execute
|
30
|
+
end
|
31
|
+
raise unless result
|
32
|
+
end
|
33
|
+
|
34
|
+
# This verifies that Jenkins is started
|
35
|
+
# and that it is ready to accept requests.
|
36
|
+
def wait_for_server_start
|
37
|
+
require 'socket'
|
38
|
+
require 'net/http'
|
39
|
+
tries = 1
|
40
|
+
max_tries = 30
|
41
|
+
successes = 0
|
42
|
+
max_successes = 2
|
43
|
+
wait = 5
|
44
|
+
print "Waiting for the server to start (max tries: #{max_tries} with a #{wait} second pause between tries): "
|
45
|
+
begin
|
46
|
+
while tries <= max_tries
|
47
|
+
tries += 1
|
48
|
+
begin
|
49
|
+
Net::HTTP.start("localhost", "3010") do |http|
|
50
|
+
response = http.get('/')
|
51
|
+
if response.code == "200"
|
52
|
+
print "O"
|
53
|
+
successes += 1
|
54
|
+
return true if successes >= max_successes
|
55
|
+
else
|
56
|
+
print "o"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
rescue SystemCallError => e
|
60
|
+
successes = 0
|
61
|
+
if tries == max_tries
|
62
|
+
print "!"
|
63
|
+
raise
|
64
|
+
end
|
65
|
+
print "."
|
66
|
+
end
|
67
|
+
$stdout.flush
|
68
|
+
sleep(wait)
|
69
|
+
end
|
70
|
+
ensure
|
71
|
+
puts # Ensure a newline gets added
|
72
|
+
$stdout.flush
|
73
|
+
end
|
74
|
+
return false
|
75
|
+
end
|
76
|
+
|
77
|
+
namespace :jenkins do
|
78
|
+
namespace :server do
|
79
|
+
require 'fileutils'
|
80
|
+
|
81
|
+
port = 3010
|
82
|
+
control = 3011
|
83
|
+
directory plugin_dir = File.expand_path("../var/jenkins/plugins", __FILE__)
|
84
|
+
|
85
|
+
desc "Run a server for tests"
|
86
|
+
task :test => plugin_dir do
|
87
|
+
FileUtils.chdir(File.dirname(__FILE__)) do
|
88
|
+
Dir["fixtures/jenkins/*.hpi"].each do |plugin|
|
89
|
+
FileUtils.cp plugin, plugin_dir
|
90
|
+
end
|
91
|
+
logfile = File.expand_path("../var/jenkins/test.log", __FILE__)
|
92
|
+
puts "Launching jenkins test server at http://localhost:#{port}..."
|
93
|
+
puts " output will be logged to #{logfile}"
|
94
|
+
`bundle exec bin/jenkins server --home #{File.dirname(plugin_dir)} --port #{port} --control #{control} --daemon --logfile #{logfile}`
|
95
|
+
end
|
96
|
+
wait_for_server_start
|
97
|
+
end
|
98
|
+
|
99
|
+
desc "Kill jenkins test server if it is running."
|
100
|
+
task :killtest do
|
101
|
+
FileUtils.chdir(File.dirname(__FILE__)) do
|
102
|
+
puts "Killing any running server processes..."
|
103
|
+
`ruby bin/jenkins server --control #{control} --kill 2>/dev/null`
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
Dir['tasks/**/*.rake'].each {|f| load f}
|
data/bin/jenkins
ADDED
data/cucumber.yml
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
<%
|
2
|
+
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
|
3
|
+
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
|
4
|
+
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
|
5
|
+
%>
|
6
|
+
default: --drb <%= std_opts %> features
|
7
|
+
wip: --drb --tags @wip:3 --wip features
|
8
|
+
rerun: --drb <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
|
@@ -0,0 +1,44 @@
|
|
1
|
+
Feature: Show build details
|
2
|
+
I want to see details about a particular build for a job I'm interested in
|
3
|
+
|
4
|
+
Scenario: Show build details for a job on a non-existent server (jenkins build_details)
|
5
|
+
When I run local executable "jenkins" with arguments "build_details ruby 1 --host localhost --port 9999"
|
6
|
+
Then I should see exactly
|
7
|
+
"""
|
8
|
+
No connection available to the server.
|
9
|
+
"""
|
10
|
+
|
11
|
+
@jenkins-server
|
12
|
+
Scenario: Show build details for a non-existent job (jenkins build_details)
|
13
|
+
Given I have a Jenkins server running
|
14
|
+
And the Jenkins server has no current jobs
|
15
|
+
When I run local executable "jenkins" with arguments "build_details ruby 1 --host localhost --port 3010"
|
16
|
+
Then I should see exactly
|
17
|
+
"""
|
18
|
+
ERROR: Cannot find project 'ruby'.
|
19
|
+
"""
|
20
|
+
|
21
|
+
@jenkins-server
|
22
|
+
Scenario: Show build details for a job (jenkins build_details)
|
23
|
+
Given I have a Jenkins server running
|
24
|
+
And the Jenkins server has no current jobs
|
25
|
+
And I am in the "ruby" project folder
|
26
|
+
And the project uses "git" scm
|
27
|
+
When I run local executable "jenkins" with arguments "create . --host localhost --port 3010"
|
28
|
+
When I run local executable "jenkins" with arguments "build"
|
29
|
+
When I wait for ruby build 1 to start
|
30
|
+
When I run local executable "jenkins" with arguments "build_details ruby 1 --host localhost --port 3010 --json"
|
31
|
+
Then I should see
|
32
|
+
"""
|
33
|
+
"number":1
|
34
|
+
"""
|
35
|
+
And I should see
|
36
|
+
"""
|
37
|
+
"actions":[
|
38
|
+
"""
|
39
|
+
And I should see
|
40
|
+
"""
|
41
|
+
"changeSet":{
|
42
|
+
"""
|
43
|
+
|
44
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
Feature: Configure host connection information
|
2
|
+
|
3
|
+
Scenario: Configure host connection information and check default host and reconfigure
|
4
|
+
Given I run local executable "jenkins" with arguments "configure --host localhost --port 3010"
|
5
|
+
When I run local executable "jenkins" with arguments "default_host"
|
6
|
+
Then I should see exactly
|
7
|
+
"""
|
8
|
+
http://localhost:3010
|
9
|
+
"""
|
10
|
+
Given I run local executable "jenkins" with arguments "configure --host localhost --port 3010 --ssl"
|
11
|
+
When I run local executable "jenkins" with arguments "default_host"
|
12
|
+
Then I should see exactly
|
13
|
+
"""
|
14
|
+
https://localhost:3010
|
15
|
+
"""
|
16
|
+
|
17
|
+
Scenario: Configure host connection authentication information and check auth_info and reconfigure
|
18
|
+
Given I run local executable "jenkins" with arguments "auth_info"
|
19
|
+
Then I should see exactly
|
20
|
+
"""
|
21
|
+
"""
|
22
|
+
When I run local executable "jenkins" with arguments "configure --username jenkins --password sniknej"
|
23
|
+
And I run local executable "jenkins" with arguments "auth_info"
|
24
|
+
Then I should see exactly
|
25
|
+
"""
|
26
|
+
username: jenkins
|
27
|
+
password: sniknej
|
28
|
+
"""
|
29
|
+
When I run local executable "jenkins" with arguments "configure --username jenkins1 --password 1sniknej"
|
30
|
+
And I run local executable "jenkins" with arguments "auth_info"
|
31
|
+
Then I should see exactly
|
32
|
+
"""
|
33
|
+
username: jenkins1
|
34
|
+
password: 1sniknej
|
35
|
+
"""
|
36
|
+
|