paraduct 1.0.0.beta2 → 1.0.0.beta3

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 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
  - - ">"