paraduct 1.0.0.beta2 → 1.0.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7b356ec4fc1ad384a7b94c7bd2b154f333623896
4
- data.tar.gz: 2cf58a48ce0c7fb0fd73b156d28b2b241dffc0b8
3
+ metadata.gz: 44b857ff3d62610894f7bb2c251302415642bc22
4
+ data.tar.gz: 4744fbe562d1a5ae56eca1ea85e46897e62ff682
5
5
  SHA512:
6
- metadata.gz: 85f5c6e65e5173ca899f65a2bdc7db0dc6af6b665b4adc536db906dec3e951e23b8217545a161654ab2da0eb5e054d114139e0006e964241a2b8844a9d74a182
7
- data.tar.gz: 40ce010692cf0e3a889afde1362d3f027712404070bbe58e2990ef46b9e6774263fcdf18f446e00158e57481b24dff03fa646213490aa0f9f3556aedc70d1026
6
+ metadata.gz: fc130e6be4ce56c7c1f0ae4ccda80790e88631fdd4d9c8f6c20e31ca6f27fe845749c8872d9190fb4faee843cdc9e96714de971d08651c4f927c8d1833551527
7
+ data.tar.gz: e6a4990163c8a9e79c28cd1ee1836a4fbd41c331f8b5512e391842839fe553372d8abf1904bad80a4bc5f94636d6f3a2b4e051baae076bfb8b9c9161a640eabe
data/.travis.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 1.9
3
4
  - 2.0
4
5
  - 2.1
5
6
  - 2.2
data/CHANGELOG.md CHANGED
@@ -5,10 +5,6 @@
5
5
  * https://github.com/sue445/paraduct/pull/77
6
6
  * Run under current directory when work_dir is empty
7
7
  * https://github.com/sue445/paraduct/pull/78
8
- * Stop support ruby 1.9
9
- * https://github.com/sue445/paraduct/pull/82
10
- * Use specinfra insteadof PTY.spawn
11
- * https://github.com/sue445/paraduct/pull/81
12
8
  * some refactorings
13
9
  * https://github.com/sue445/paraduct/pull/79
14
10
  * https://github.com/sue445/paraduct/pull/80
data/README.md CHANGED
@@ -13,7 +13,7 @@ Paraduct (**parallel** + **parameterize** + **product**) is matrix test runner
13
13
  ![architecture](img/architecture.png)
14
14
 
15
15
  ## Requirements
16
- * ruby 2.0+
16
+ * ruby 1.9+
17
17
  * rsync
18
18
 
19
19
  ## Installation
@@ -1,21 +1,18 @@
1
1
  module Paraduct
2
2
  require "pty"
3
- require 'specinfra/core'
4
3
 
5
4
  class Runner
6
5
  attr_reader :script, :params, :base_job_dir
7
6
 
8
- # @param script [String, Array<String>] script file, script(s)
9
- # @param params [Hash{String => String}] value is quoted (ex. FOO=1 => FOO="1" )
10
- # @param base_job_dir [String]
11
- # @param job_id [String]
12
- def initialize(script: nil, params: nil, base_job_dir: nil, job_id: nil)
13
- @script = script
14
- @params = params
15
- @base_job_dir = base_job_dir
16
- @job_id = job_id
17
-
18
- @backend = Specinfra::Backend::Exec.new
7
+ # @param args
8
+ # @option args :script [String, Array<String>] script file, script(s)
9
+ # @option args :params [Hash{String => String}] key is capitalized and value is quoted (ex. foo=1 => FOO="1" )
10
+ # @option args :base_job_dir [String]
11
+ def initialize(args={})
12
+ @script = args[:script]
13
+ @params = args[:params]
14
+ @base_job_dir = args[:base_job_dir]
15
+ @job_id = args[:job_id]
19
16
  end
20
17
 
21
18
  def setup_dir
@@ -62,20 +59,20 @@ module Paraduct
62
59
  private
63
60
 
64
61
  def run_command(command)
65
- command_result = @backend.run_command(command)
66
-
67
62
  full_stdout = ""
68
- command_result.stdout.each_line do |line|
69
- line = line.strip
70
- logger.info line
71
- full_stdout << "#{line}\n"
72
- end
73
- command_result.stderr.each_line do |line|
74
- line = line.strip
75
- logger.info line
76
- full_stdout << "#{line}\n"
63
+
64
+ PTY.spawn(command) do |stdin, _stdout, pid|
65
+ begin
66
+ stdin.each do |line|
67
+ line.strip!
68
+ logger.info line
69
+ full_stdout << "#{line}\n"
70
+ end
71
+ rescue Errno::EIO
72
+ end
73
+ exit_status = PTY.check(pid)
74
+ raise Paraduct::Errors::ProcessError.new(full_stdout, exit_status) if exit_status && !exit_status.success?
77
75
  end
78
- raise Paraduct::Errors::ProcessError.new(full_stdout, command_result.exit_status) if command_result.failure?
79
76
 
80
77
  full_stdout
81
78
  end
@@ -1,3 +1,3 @@
1
1
  module Paraduct
2
- VERSION = "1.0.0.beta2"
2
+ VERSION = "1.0.0.beta3"
3
3
  end
data/paraduct.gemspec CHANGED
@@ -17,12 +17,10 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
- spec.required_ruby_version = ">= 2.0.0"
21
20
 
22
21
  spec.add_dependency "activesupport", "~> 4.0"
23
22
  spec.add_dependency "colorize"
24
23
  spec.add_dependency "rsync"
25
- spec.add_dependency "specinfra"
26
24
  spec.add_dependency "thor"
27
25
  spec.add_dependency "thread"
28
26
 
@@ -38,4 +36,9 @@ Gem::Specification.new do |spec|
38
36
  spec.add_development_dependency "rspec-retry"
39
37
  spec.add_development_dependency "rspec-temp_dir"
40
38
  spec.add_development_dependency "yard"
39
+
40
+ if RUBY_VERSION.to_i >= 2
41
+ # NOTE: pry-byebug doesn't support ruby 1.9
42
+ spec.add_development_dependency "pry-byebug"
43
+ end
41
44
  end
@@ -65,7 +65,7 @@ describe Paraduct::CLI do
65
65
  }
66
66
  end
67
67
 
68
- it "should raise TestFailureError" do
68
+ it "should raise TestFailureError", with_retry do
69
69
  expect { subject }.to raise_error Paraduct::Errors::TestFailureError
70
70
  end
71
71
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paraduct
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta2
4
+ version: 1.0.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: specinfra
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: thor
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -262,6 +248,20 @@ dependencies:
262
248
  - - ">="
263
249
  - !ruby/object:Gem::Version
264
250
  version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: pry-byebug
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
265
  description: Paraduct(parallel + parameterize + product) is matrix test runner
266
266
  email:
267
267
  - sue445@sue445.net
@@ -329,7 +329,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
329
329
  requirements:
330
330
  - - ">="
331
331
  - !ruby/object:Gem::Version
332
- version: 2.0.0
332
+ version: '0'
333
333
  required_rubygems_version: !ruby/object:Gem::Requirement
334
334
  requirements:
335
335
  - - ">"