test-drive 0.0.2 → 0.0.3
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.
- checksums.yaml +13 -5
- data/.gitignore +3 -1
- data/.travis.yml +1 -2
- data/Gemfile +0 -2
- data/README.md +45 -19
- data/Rakefile +5 -4
- data/bin/test-drive +25 -21
- data/features/support/env.rb +2 -0
- data/features/test-drive.feature +5 -7
- data/lib/test/drive/git_helper.rb +3 -3
- data/lib/test/drive/jenkins_client.rb +4 -3
- data/lib/test/drive/version.rb +1 -1
- data/spec/fixtures/console_output1.json +5 -0
- data/spec/fixtures/console_output2.json +5 -0
- data/spec/git_helper_spec.rb +13 -2
- data/spec/jenkins_client_spec.rb +22 -2
- data/spec/spec_helper.rb +3 -2
- data/spec/test-drive_spec.rb +1 -1
- data/test-drive.gemspec +20 -18
- metadata +99 -66
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YmM4YjM0ZmQyMDFmNzk2MDUyNzcwNzllYjdiZjAzODc4OTEyMWFiMg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZmI0M2QyZWIwOWUzNmU4MDU1ODBkNDIyODI5Y2I3OTNkNzM5OTczOA==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MzQwNGFhNjAzMzY3NTI5MWU3MzkxOTY4NjkxMzU4NjdlZGYxNjVkOGM4Y2Rl
|
10
|
+
MzQ3Mjc4MWI5ZDRiMGYyNWVlYTkyNDM3OWFlM2VhOGMzYzJlNGE4ZWVlNTc2
|
11
|
+
N2U1ZWMyMGJiYmMzMTJiNWM2ZTgyODNjODE3NmIwNTllMTU1NGU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YTExZTAzOGVjZjNkYWMyZTliMTY4ZmY5ZTE4NzgzYjk5ZDNkMjQ2MTM2MWU0
|
14
|
+
Nzc4NmYwNTRhOGRjZTRhNDVjNzBjMzZhZWFhYzQwYTM5ZmQxNzdkNTVkMzM4
|
15
|
+
NWNlMjY2MmZlMGU3ODg4Y2RjYTIzYzkxZjg2YjAzZTM4MDliNGY=
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -4,15 +4,15 @@
|
|
4
4
|
[][travis]
|
5
5
|
[][gemnasium]
|
6
6
|
[][codeclimate]
|
7
|
-
[][testcoverage]
|
8
8
|
|
9
9
|
[gem]: https://rubygems.org/gems/test-drive
|
10
10
|
[travis]: http://travis-ci.org/amplify-education/test-drive
|
11
11
|
[gemnasium]: https://gemnasium.com/amplify-education/test-drive
|
12
12
|
[codeclimate]: https://codeclimate.com/github/amplify-education/test-drive
|
13
|
-
[testcoverage]: https://
|
13
|
+
[testcoverage]: https://coveralls.io/r/amplify-education/test-drive
|
14
14
|
|
15
|
-
A simple command-line tool for running a Jenkins test job before pushing code to
|
15
|
+
A simple command-line tool for running a Jenkins test job before pushing code to a remote repo
|
16
16
|
|
17
17
|
## Installation
|
18
18
|
|
@@ -20,32 +20,58 @@ A simple command-line tool for running a Jenkins test job before pushing code to
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
$ test-drive
|
24
|
-
Usage: test-drive [options] jenkins_url user api_key
|
23
|
+
$ test-drive -h
|
25
24
|
|
26
|
-
|
25
|
+
Usage: test-drive [options]
|
27
26
|
|
28
|
-
|
27
|
+
A simple command-line tool for running a Jenkins test job before pushing code to a remote repo
|
28
|
+
|
29
|
+
v0.0.3
|
29
30
|
|
30
31
|
Options:
|
31
32
|
-h, --help Show command line help
|
32
|
-
-
|
33
|
-
|
34
|
-
-
|
35
|
-
|
33
|
+
-s, --server JENKINS_URL URL for the Jenkins server
|
34
|
+
-u, --user USER Jenkins user ID
|
35
|
+
-p, --password API_KEY Jenkins password or API token
|
36
|
+
-j, --job TARGET_JOB Jenkins job to be triggered
|
37
|
+
-n, --[no-]push Option to enable (or suppress) pushing to the remote repo
|
36
38
|
--version Show help/version info
|
37
39
|
--log-level LEVEL Set the logging level
|
38
40
|
(debug|info|warn|error|fatal)
|
39
41
|
(Default: info)
|
40
42
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
43
|
+
Default values can be placed in ~/.test-drive.yml
|
44
|
+
|
45
|
+
## Jenkins Config
|
46
|
+
|
47
|
+
This app assumes that you have a Jenkins job already configured as follows:
|
48
|
+
|
49
|
+
* It takes a file parameter called 'patch'
|
50
|
+
* It pulls or your source code from origin/master and executes a shell command that runs
|
51
|
+
|
52
|
+
|
53
|
+
echo "" >> ${WORKSPACE}/patch
|
54
|
+
git apply ${WORKSPACE}/patch
|
55
|
+
|
56
|
+
* It then executes your desired test suite and runs
|
57
|
+
|
58
|
+
|
59
|
+
git apply --reverse ${WORKSPACE}/patch
|
60
|
+
|
61
|
+
to teardown (optional but recommended)
|
62
|
+
|
63
|
+
## Local Config
|
64
|
+
|
65
|
+
On first run, you will have the option of saving your Jenkins credentials to a config
|
66
|
+
file at `~/.test-drive.yml`. This file may be edited to include any of the allowed
|
67
|
+
options as defaults.
|
68
|
+
|
69
|
+
---
|
70
|
+
server: https://jenkins.your_org.com/
|
71
|
+
user: user@your_org.com
|
72
|
+
password: xxxxxxxxxxxxxxxxxxxxxxxxx
|
73
|
+
job: YourDefaultJob
|
74
|
+
push: false
|
49
75
|
|
50
76
|
## Contributing
|
51
77
|
|
data/Rakefile
CHANGED
@@ -35,6 +35,7 @@ end
|
|
35
35
|
|
36
36
|
require 'cucumber'
|
37
37
|
require 'cucumber/rake/task'
|
38
|
+
require 'coveralls/rake/task'
|
38
39
|
gem 'rdoc' # we need the installed RDoc gem, not the system one
|
39
40
|
require 'rdoc/task'
|
40
41
|
|
@@ -42,6 +43,7 @@ include Rake::DSL
|
|
42
43
|
|
43
44
|
Bundler::GemHelper.install_tasks
|
44
45
|
|
46
|
+
Coveralls::RakeTask.new
|
45
47
|
|
46
48
|
RSpec::Core::RakeTask.new do |t|
|
47
49
|
# Put spec opts in a file named .rspec in root
|
@@ -51,15 +53,14 @@ CUKE_RESULTS = 'results.html'
|
|
51
53
|
CLEAN << CUKE_RESULTS
|
52
54
|
Cucumber::Rake::Task.new(:features) do |t|
|
53
55
|
t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty --no-source -x"
|
54
|
-
t.fork = false
|
55
56
|
end
|
56
57
|
|
57
58
|
Rake::RDocTask.new do |rd|
|
58
|
-
|
59
|
+
|
59
60
|
rd.main = "README.rdoc"
|
60
|
-
|
61
|
+
|
61
62
|
rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
|
62
63
|
end
|
63
64
|
|
64
|
-
task :default => [:spec
|
65
|
+
task :default => [:spec, :features, 'coveralls:push']
|
65
66
|
|
data/bin/test-drive
CHANGED
@@ -4,6 +4,8 @@ require 'optparse'
|
|
4
4
|
require 'methadone'
|
5
5
|
require 'uuidtools'
|
6
6
|
require 'test/drive'
|
7
|
+
require 'highline/import'
|
8
|
+
require 'yaml'
|
7
9
|
|
8
10
|
class App
|
9
11
|
include Methadone::Main
|
@@ -13,22 +15,27 @@ class App
|
|
13
15
|
extend Test::Drive::GitHelper
|
14
16
|
|
15
17
|
|
16
|
-
main do
|
18
|
+
main do
|
19
|
+
@server_url = options[:server] ||= ask('Jenkins URL: ')
|
20
|
+
@user = options[:user] ||= ask('Jenkins User ID: ')
|
21
|
+
@api_key = options[:password] ||= ask('Jenkins Password/API Token: ')
|
22
|
+
@target_job = options[:job] ||= ask('Jenkins job to trigger: ')
|
17
23
|
|
18
24
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
25
|
+
config_file = File.expand_path('.test-drive.yml', ENV['HOME'])
|
26
|
+
if !File.exists?(config_file) && agree('Save these credentials as default values? ', true)
|
27
|
+
File.open(config_file, 'w') { |file| YAML.dump(options, file) }
|
28
|
+
end
|
23
29
|
|
24
|
-
@client = JenkinsClient.new @
|
30
|
+
@client = JenkinsClient.new @server_url, @user, @api_key
|
31
|
+
@patch_file = 'patch'
|
25
32
|
|
26
|
-
create_patch
|
27
|
-
debug File.readlines File.open
|
33
|
+
create_patch @patch_file
|
34
|
+
debug File.readlines File.open @patch_file
|
28
35
|
|
29
36
|
tracking_id = UUIDTools::UUID.random_create.to_s
|
30
37
|
id_param = {'name' => 'TRACKING_ID', 'value' => tracking_id}
|
31
|
-
@client.upload_file_to_job(@target_job, tracking_id,
|
38
|
+
@client.upload_file_to_job(@target_job, tracking_id, @patch_file)
|
32
39
|
|
33
40
|
build_number = @client.get_build_number(@target_job, id_param, 120)
|
34
41
|
|
@@ -36,24 +43,21 @@ class App
|
|
36
43
|
result = @client.wait_for_job_status(@target_job, build_number)
|
37
44
|
|
38
45
|
print_result(result)
|
39
|
-
git_push if
|
46
|
+
git_push if ['SUCCESS', 'UNSTABLE'].include? result && options[:push]
|
40
47
|
|
41
|
-
delete_patch
|
48
|
+
delete_patch @patch_file
|
42
49
|
end
|
43
50
|
|
51
|
+
defaults_from_config_file '.test-drive.yml'
|
44
52
|
|
45
|
-
|
46
|
-
|
47
|
-
|
53
|
+
on '-s JENKINS_URL', '--server', 'URL for the Jenkins server'
|
54
|
+
on '-u USER', '--user', 'Jenkins user ID'
|
55
|
+
on '-p API_KEY', '--password', 'Jenkins password or API token'
|
56
|
+
on '-j TARGET_JOB', '--job', 'Jenkins job to be triggered'
|
57
|
+
on '-n', '--[no-]push', 'Option to enable (or suppress) pushing to the remote repo'
|
48
58
|
|
49
|
-
options['file'] = 'patch'
|
50
|
-
on '-f PATCH_FILE', '--file', 'Path to patch file'
|
51
59
|
|
52
|
-
|
53
|
-
on '-j TARGET_JOB', '--target-job', 'Jenkins job to be triggered'
|
54
|
-
|
55
|
-
|
56
|
-
description 'A simple command-line tool for running a Jenkins test job before pushing code to the remote repo'
|
60
|
+
description 'A simple command-line tool for running a Jenkins test job before pushing code to a remote repo'
|
57
61
|
|
58
62
|
version Test::Drive::VERSION
|
59
63
|
|
data/features/support/env.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'aruba/cucumber'
|
2
2
|
require 'methadone/cucumber'
|
3
|
+
require 'coveralls'
|
3
4
|
|
4
5
|
ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
|
5
6
|
LIB_DIR = File.join(File.expand_path(File.dirname(__FILE__)),'..','..','lib')
|
7
|
+
Coveralls.wear_merged!
|
6
8
|
|
7
9
|
Before do
|
8
10
|
# Using "announce" causes massive warnings on 1.9.2
|
data/features/test-drive.feature
CHANGED
@@ -11,11 +11,9 @@ Feature: My bootstrapped app kinda works
|
|
11
11
|
And the banner should document that this app takes options
|
12
12
|
And the following options should be documented:
|
13
13
|
|--version |
|
14
|
-
|--
|
15
|
-
|--file |
|
14
|
+
|--job |
|
16
15
|
|--log-level |
|
17
|
-
|
18
|
-
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|api_key |which_is_required|
|
16
|
+
|--server |
|
17
|
+
|--user |
|
18
|
+
|--password |
|
19
|
+
|--[no-]push |
|
@@ -9,7 +9,7 @@ module Test
|
|
9
9
|
def create_patch filename
|
10
10
|
sh 'git pull --rebase'
|
11
11
|
|
12
|
-
res = sh 'git diff --binary origin' do |stdout|
|
12
|
+
res = sh 'git diff --binary origin/master' do |stdout|
|
13
13
|
File.open(filename, 'w') { |f| f.write stdout }
|
14
14
|
end
|
15
15
|
|
@@ -19,11 +19,11 @@ module Test
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def delete_patch filename
|
22
|
-
|
22
|
+
File.delete filename
|
23
23
|
end
|
24
24
|
|
25
25
|
def git_push
|
26
|
-
sh 'git push origin
|
26
|
+
sh 'git push origin'
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -6,7 +6,7 @@ module Test
|
|
6
6
|
attr_accessor :client
|
7
7
|
|
8
8
|
def initialize jenkins_url, user, api_key
|
9
|
-
@
|
9
|
+
@server_url = jenkins_url
|
10
10
|
@user = user
|
11
11
|
@api_key = api_key
|
12
12
|
|
@@ -27,7 +27,7 @@ module Test
|
|
27
27
|
raise 'Build number not found within the time specified!'
|
28
28
|
end
|
29
29
|
|
30
|
-
def print_output(build_number, target_job)
|
30
|
+
def print_output(build_number, target_job, sleep_interval=5)
|
31
31
|
offset = 0
|
32
32
|
loop do
|
33
33
|
job_output = @client.job.get_console_output(target_job, build_number, offset)
|
@@ -36,6 +36,7 @@ module Test
|
|
36
36
|
break unless job_output['more']
|
37
37
|
|
38
38
|
offset = job_output['size']
|
39
|
+
sleep sleep_interval
|
39
40
|
end
|
40
41
|
end
|
41
42
|
|
@@ -48,7 +49,7 @@ module Test
|
|
48
49
|
end
|
49
50
|
|
50
51
|
def upload_file_to_job(target_job, tracking_id, path_to_file)
|
51
|
-
res = `curl -i #{@
|
52
|
+
res = `curl -i #{@server_url}/job/#{target_job}/build -F file0=@#{path_to_file} -F json='{"parameter": [{"name":"#{path_to_file}", "file":"file0"}, {"name":"TRACKING_ID", "value":"#{tracking_id}"}]}' --user '#{@user}':'#{@api_key}'`
|
52
53
|
raise "Failed to send patch to Jenkins: \n#{res}" unless $? == 0
|
53
54
|
end
|
54
55
|
end
|
data/lib/test/drive/version.rb
CHANGED
data/spec/git_helper_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
include Test::Drive::GitHelper
|
3
3
|
|
4
4
|
describe 'GitHelper' do
|
@@ -8,4 +8,15 @@ describe 'GitHelper' do
|
|
8
8
|
expect { create_patch "temp-patch" }.to raise_error IOError
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
|
+
describe '#delete_patch' do
|
13
|
+
it 'deletes the patch file' do
|
14
|
+
filename = 'tmpfile'
|
15
|
+
File.new filename, 'w'
|
16
|
+
expect(File).to exist filename
|
17
|
+
|
18
|
+
delete_patch filename
|
19
|
+
expect(File).not_to exist filename
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/spec/jenkins_client_spec.rb
CHANGED
@@ -1,12 +1,18 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
require 'json'
|
3
3
|
include Test::Drive
|
4
4
|
|
5
5
|
describe 'JenkinsClient' do
|
6
|
+
|
7
|
+
build_details = JSON.parse(File.read 'spec/fixtures/build_details.json')
|
8
|
+
output1 = JSON.parse(File.read 'spec/fixtures/console_output1.json')
|
9
|
+
output2 = JSON.parse(File.read 'spec/fixtures/console_output2.json')
|
10
|
+
|
6
11
|
let(:test_client) {
|
7
12
|
test_client = JenkinsClient.new '0.0.0.0', 'user', 'api_key'
|
8
13
|
test_client.client = instance_double JenkinsApi::Client, job: double(JenkinsApi::Client::Job)
|
9
|
-
allow(test_client.client.job).to receive(:get_build_details).and_return(
|
14
|
+
allow(test_client.client.job).to receive(:get_build_details).and_return(build_details)
|
15
|
+
allow(test_client.client.job).to receive(:get_console_output).and_return(output1, output2)
|
10
16
|
test_client
|
11
17
|
}
|
12
18
|
|
@@ -28,4 +34,18 @@ describe 'JenkinsClient' do
|
|
28
34
|
expect { test_client.get_build_number 'TestDrive', id_hash, 10, 0 }.to raise_error
|
29
35
|
end
|
30
36
|
end
|
37
|
+
|
38
|
+
describe '#print_output' do
|
39
|
+
it 'prints Jenkins progressive console output to the terminal' do
|
40
|
+
expected_output = "Test Console Output\r\nStarted by user Test User\r\nFinished: SUCCESS\r\n"
|
41
|
+
expect { test_client.print_output 'TestDrive', 1, 0 }.to output(expected_output).to_stdout
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe '#wait_for_job_status' do
|
46
|
+
it 'returns the build result' do
|
47
|
+
build_result = test_client.wait_for_job_status 'TestDrive', 10
|
48
|
+
expect(build_result).to eq 'SUCCESS'
|
49
|
+
end
|
50
|
+
end
|
31
51
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/test-drive_spec.rb
CHANGED
data/test-drive.gemspec
CHANGED
@@ -4,29 +4,31 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'test/drive/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'test-drive'
|
8
8
|
spec.version = Test::Drive::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
9
|
+
spec.authors = ['Natasha Badillo']
|
10
|
+
spec.email = ['nbadillo@amplify.com']
|
11
|
+
spec.summary = 'Test-Drive for Jenkins'
|
12
|
+
spec.description = 'A simple command-line tool for running a Jenkins test job before pushing code to the remote repo'
|
13
|
+
spec.homepage = 'https://github.com/amplify-education/test-drive'
|
14
|
+
spec.license = 'mit'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
17
17
|
spec.executables = ['test-drive']
|
18
18
|
spec.test_files = spec.files.grep(%r{^(spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_runtime_dependency
|
22
|
-
spec.add_runtime_dependency
|
23
|
-
spec.add_runtime_dependency
|
24
|
-
spec.add_runtime_dependency
|
25
|
-
spec.add_runtime_dependency
|
21
|
+
spec.add_runtime_dependency 'methadone', '~> 1.9'
|
22
|
+
spec.add_runtime_dependency 'jenkins_api_client', '~> 1.3'
|
23
|
+
spec.add_runtime_dependency 'uuidtools', '~> 2.1'
|
24
|
+
spec.add_runtime_dependency 'artii', '~> 2.1'
|
25
|
+
spec.add_runtime_dependency 'rainbow', '~> 2.0'
|
26
|
+
spec.add_runtime_dependency 'highline', '~> 1.7'
|
26
27
|
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_development_dependency
|
29
|
-
spec.add_development_dependency
|
30
|
-
spec.add_development_dependency
|
31
|
-
spec.add_development_dependency
|
28
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
29
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
30
|
+
spec.add_development_dependency 'rdoc', '~> 4.2'
|
31
|
+
spec.add_development_dependency 'aruba', '~> 0.6'
|
32
|
+
spec.add_development_dependency 'rspec', '~> 3.2'
|
33
|
+
spec.add_development_dependency 'coveralls'
|
32
34
|
end
|
metadata
CHANGED
@@ -1,156 +1,185 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-drive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Natasha Badillo
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: methadone
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.9'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
15
22
|
version_requirements: !ruby/object:Gem::Requirement
|
16
23
|
requirements:
|
17
24
|
- - ~>
|
18
25
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
26
|
+
version: '1.9'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: jenkins_api_client
|
20
29
|
requirement: !ruby/object:Gem::Requirement
|
21
30
|
requirements:
|
22
31
|
- - ~>
|
23
32
|
- !ruby/object:Gem::Version
|
24
|
-
version: 1.
|
25
|
-
prerelease: false
|
33
|
+
version: '1.3'
|
26
34
|
type: :runtime
|
27
|
-
|
28
|
-
name: jenkins_api_client
|
35
|
+
prerelease: false
|
29
36
|
version_requirements: !ruby/object:Gem::Requirement
|
30
37
|
requirements:
|
31
|
-
- -
|
38
|
+
- - ~>
|
32
39
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: uuidtools
|
34
43
|
requirement: !ruby/object:Gem::Requirement
|
35
44
|
requirements:
|
36
|
-
- -
|
45
|
+
- - ~>
|
37
46
|
- !ruby/object:Gem::Version
|
38
|
-
version: '
|
39
|
-
prerelease: false
|
47
|
+
version: '2.1'
|
40
48
|
type: :runtime
|
41
|
-
|
42
|
-
name: uuidtools
|
49
|
+
prerelease: false
|
43
50
|
version_requirements: !ruby/object:Gem::Requirement
|
44
51
|
requirements:
|
45
|
-
- -
|
52
|
+
- - ~>
|
46
53
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
54
|
+
version: '2.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: artii
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
58
|
requirements:
|
50
|
-
- -
|
59
|
+
- - ~>
|
51
60
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
53
|
-
prerelease: false
|
61
|
+
version: '2.1'
|
54
62
|
type: :runtime
|
55
|
-
|
56
|
-
name: artii
|
63
|
+
prerelease: false
|
57
64
|
version_requirements: !ruby/object:Gem::Requirement
|
58
65
|
requirements:
|
59
|
-
- -
|
66
|
+
- - ~>
|
60
67
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
68
|
+
version: '2.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rainbow
|
62
71
|
requirement: !ruby/object:Gem::Requirement
|
63
72
|
requirements:
|
64
|
-
- -
|
73
|
+
- - ~>
|
65
74
|
- !ruby/object:Gem::Version
|
66
|
-
version: '0'
|
67
|
-
prerelease: false
|
75
|
+
version: '2.0'
|
68
76
|
type: :runtime
|
69
|
-
|
70
|
-
name: rainbow
|
77
|
+
prerelease: false
|
71
78
|
version_requirements: !ruby/object:Gem::Requirement
|
72
79
|
requirements:
|
73
|
-
- -
|
80
|
+
- - ~>
|
74
81
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
82
|
+
version: '2.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: highline
|
76
85
|
requirement: !ruby/object:Gem::Requirement
|
77
86
|
requirements:
|
78
|
-
- -
|
87
|
+
- - ~>
|
79
88
|
- !ruby/object:Gem::Version
|
80
|
-
version: '
|
81
|
-
prerelease: false
|
89
|
+
version: '1.7'
|
82
90
|
type: :runtime
|
83
|
-
|
84
|
-
name: bundler
|
91
|
+
prerelease: false
|
85
92
|
version_requirements: !ruby/object:Gem::Requirement
|
86
93
|
requirements:
|
87
94
|
- - ~>
|
88
95
|
- !ruby/object:Gem::Version
|
89
96
|
version: '1.7'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: bundler
|
90
99
|
requirement: !ruby/object:Gem::Requirement
|
91
100
|
requirements:
|
92
101
|
- - ~>
|
93
102
|
- !ruby/object:Gem::Version
|
94
103
|
version: '1.7'
|
95
|
-
prerelease: false
|
96
104
|
type: :development
|
97
|
-
|
98
|
-
name: rake
|
105
|
+
prerelease: false
|
99
106
|
version_requirements: !ruby/object:Gem::Requirement
|
100
107
|
requirements:
|
101
108
|
- - ~>
|
102
109
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
110
|
+
version: '1.7'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
104
113
|
requirement: !ruby/object:Gem::Requirement
|
105
114
|
requirements:
|
106
115
|
- - ~>
|
107
116
|
- !ruby/object:Gem::Version
|
108
117
|
version: '10.0'
|
109
|
-
prerelease: false
|
110
118
|
type: :development
|
111
|
-
|
112
|
-
name: rdoc
|
119
|
+
prerelease: false
|
113
120
|
version_requirements: !ruby/object:Gem::Requirement
|
114
121
|
requirements:
|
115
|
-
- -
|
122
|
+
- - ~>
|
116
123
|
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
124
|
+
version: '10.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rdoc
|
118
127
|
requirement: !ruby/object:Gem::Requirement
|
119
128
|
requirements:
|
120
|
-
- -
|
129
|
+
- - ~>
|
121
130
|
- !ruby/object:Gem::Version
|
122
|
-
version: '
|
123
|
-
prerelease: false
|
131
|
+
version: '4.2'
|
124
132
|
type: :development
|
125
|
-
|
126
|
-
name: aruba
|
133
|
+
prerelease: false
|
127
134
|
version_requirements: !ruby/object:Gem::Requirement
|
128
135
|
requirements:
|
129
|
-
- -
|
136
|
+
- - ~>
|
130
137
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
138
|
+
version: '4.2'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: aruba
|
132
141
|
requirement: !ruby/object:Gem::Requirement
|
133
142
|
requirements:
|
134
|
-
- -
|
143
|
+
- - ~>
|
135
144
|
- !ruby/object:Gem::Version
|
136
|
-
version: '0'
|
137
|
-
prerelease: false
|
145
|
+
version: '0.6'
|
138
146
|
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ~>
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.6'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: rspec
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ~>
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '3.2'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
141
162
|
version_requirements: !ruby/object:Gem::Requirement
|
142
163
|
requirements:
|
143
|
-
- -
|
164
|
+
- - ~>
|
144
165
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
166
|
+
version: '3.2'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: coveralls
|
146
169
|
requirement: !ruby/object:Gem::Requirement
|
147
170
|
requirements:
|
148
|
-
- - '>='
|
171
|
+
- - ! '>='
|
149
172
|
- !ruby/object:Gem::Version
|
150
173
|
version: '0'
|
151
|
-
prerelease: false
|
152
174
|
type: :development
|
153
|
-
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ! '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
description: A simple command-line tool for running a Jenkins test job before pushing
|
182
|
+
code to the remote repo
|
154
183
|
email:
|
155
184
|
- nbadillo@amplify.com
|
156
185
|
executables:
|
@@ -178,6 +207,8 @@ files:
|
|
178
207
|
- lib/test/drive/jenkins_client.rb
|
179
208
|
- lib/test/drive/version.rb
|
180
209
|
- spec/fixtures/build_details.json
|
210
|
+
- spec/fixtures/console_output1.json
|
211
|
+
- spec/fixtures/console_output2.json
|
181
212
|
- spec/git_helper_spec.rb
|
182
213
|
- spec/jenkins_client_spec.rb
|
183
214
|
- spec/spec_helper.rb
|
@@ -187,24 +218,24 @@ homepage: https://github.com/amplify-education/test-drive
|
|
187
218
|
licenses:
|
188
219
|
- mit
|
189
220
|
metadata: {}
|
190
|
-
post_install_message:
|
221
|
+
post_install_message:
|
191
222
|
rdoc_options: []
|
192
223
|
require_paths:
|
193
224
|
- lib
|
194
225
|
required_ruby_version: !ruby/object:Gem::Requirement
|
195
226
|
requirements:
|
196
|
-
- - '>='
|
227
|
+
- - ! '>='
|
197
228
|
- !ruby/object:Gem::Version
|
198
229
|
version: '0'
|
199
230
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
231
|
requirements:
|
201
|
-
- - '>='
|
232
|
+
- - ! '>='
|
202
233
|
- !ruby/object:Gem::Version
|
203
234
|
version: '0'
|
204
235
|
requirements: []
|
205
|
-
rubyforge_project:
|
206
|
-
rubygems_version: 2.
|
207
|
-
signing_key:
|
236
|
+
rubyforge_project:
|
237
|
+
rubygems_version: 2.4.6
|
238
|
+
signing_key:
|
208
239
|
specification_version: 4
|
209
240
|
summary: Test-Drive for Jenkins
|
210
241
|
test_files:
|
@@ -212,6 +243,8 @@ test_files:
|
|
212
243
|
- features/support/env.rb
|
213
244
|
- features/test-drive.feature
|
214
245
|
- spec/fixtures/build_details.json
|
246
|
+
- spec/fixtures/console_output1.json
|
247
|
+
- spec/fixtures/console_output2.json
|
215
248
|
- spec/git_helper_spec.rb
|
216
249
|
- spec/jenkins_client_spec.rb
|
217
250
|
- spec/spec_helper.rb
|