evrone-ci-worker 0.2.0.pre14 → 0.2.0.pre15

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: 130708766e3ff874435eed56ac662468891c58cd
4
- data.tar.gz: b596632b508dadaf7ba79ff9ae1846da4c08dbab
3
+ metadata.gz: 83df4d5bd1c3ad411698023e8d1954cc19c020b4
4
+ data.tar.gz: 9b53181386d8c5779d78b90d6b2bf535007784d7
5
5
  SHA512:
6
- metadata.gz: 22bb06a2b5431f7a93d2308489d5a75d546ad2df511fa5f72259849802ac80b38d85fce22228b88c75073a0300366f21917cefe0139ac58385b51e95812874e5
7
- data.tar.gz: 36e67da7b86ff5542ecaa4d7110a364393f0c426b2385535f421c8a81d3984abddea94397dc1c379b9549239907bbf40171054abc21ad4819fd5408337e4ee53
6
+ metadata.gz: 0d4ae45a760524afc7da44419d11b3a0555668ab4d2e924d35205492abd3b976b872afa3940264106f7ed71ce365ba8db0680291bc555dce041044b287752906
7
+ data.tar.gz: c10ef6d32bc71e2fbf0c9f22e6f53699cee908e0aec9b1d2b50b3376aff1bb06ab684b587de131b99b7559b3c7275b90e29f7f3c6886cf43a779fb53314ea3bf
@@ -21,6 +21,7 @@ module Evrone
21
21
 
22
22
  autoload :LogJob, File.expand_path("../worker/middlewares/log_job", __FILE__)
23
23
  autoload :UpdateJobStatus, File.expand_path("../worker/middlewares/update_job_status", __FILE__)
24
+ autoload :Timeout, File.expand_path("../worker/middlewares/timeout", __FILE__)
24
25
 
25
26
  autoload :LocalCreateDirs, File.expand_path("../worker/middlewares/local_create_dirs", __FILE__)
26
27
  autoload :LocalScript, File.expand_path("../worker/middlewares/local_script", __FILE__)
@@ -13,6 +13,7 @@ module Evrone
13
13
  middlewares do
14
14
  use LogJob
15
15
  use UpdateJobStatus
16
+ use Timeout
16
17
  use DockerStartContainer
17
18
  use DockerScript
18
19
  end
@@ -14,6 +14,7 @@ module Evrone
14
14
  middlewares do
15
15
  use LogJob
16
16
  use UpdateJobStatus
17
+ use Timeout
17
18
  use LocalCreateDirs
18
19
  use LocalScript
19
20
  end
@@ -4,8 +4,6 @@ module Evrone
4
4
 
5
5
  DockerScript = Struct.new(:app) do
6
6
 
7
- TIMEOUT = 30 * 60
8
-
9
7
  include Helper::Logger
10
8
  include Helper::Config
11
9
  include Common::Helper::UploadShCommand
@@ -40,7 +38,7 @@ module Evrone
40
38
  script << "env - HOME=$HOME bash #{file}"
41
39
  script = script.join(" && ")
42
40
 
43
- env.ssh.spawn script, chdir: home, timeout: TIMEOUT, &env.job.method(:add_to_output)
41
+ env.ssh.spawn script, chdir: home, &env.job.method(:add_to_output)
44
42
  end
45
43
 
46
44
  def run_after_script(env)
@@ -0,0 +1,26 @@
1
+ require 'timeout'
2
+
3
+ module Evrone
4
+ module CI
5
+ module Worker
6
+
7
+ Timeout = Struct.new(:app) do
8
+
9
+ def call(env)
10
+ rs = nil
11
+ ::Timeout.timeout(_timeout) do
12
+ rs = app.call env
13
+ end
14
+ rs
15
+ end
16
+
17
+ def _timeout
18
+ 30 * 60
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+
@@ -1,7 +1,7 @@
1
1
  module Evrone
2
2
  module CI
3
3
  module Worker
4
- VERSION = "0.2.0.pre14"
4
+ VERSION = "0.2.0.pre15"
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe Evrone::CI::Worker::Timeout do
4
+ let(:exit_code) { 0 }
5
+ let(:app) { ->(_) { exit_code } }
6
+ let(:env) { OpenStruct.new }
7
+ let(:mid) { described_class.new app }
8
+
9
+ subject { mid.call env }
10
+
11
+ it { should eq 0 }
12
+
13
+ context "when timeout happened" do
14
+ let(:app) { ->(_) { sleep 1 ; exit_code } }
15
+
16
+ before do
17
+ mock(mid)._timeout { 0.1 }
18
+ end
19
+
20
+ it "should raise" do
21
+ expect {
22
+ subject
23
+ }.to raise_error(Timeout::Error)
24
+ end
25
+ end
26
+
27
+ end
28
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evrone-ci-worker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.pre14
4
+ version: 0.2.0.pre15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-17 00:00:00.000000000 Z
11
+ date: 2013-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evrone-ci-common
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.0.pre14
19
+ version: 0.2.0.pre15
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.2.0.pre14
26
+ version: 0.2.0.pre15
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: evrone-ci-message
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.0.pre14
33
+ version: 0.2.0.pre15
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.2.0.pre14
40
+ version: 0.2.0.pre15
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: evrone-common-amqp
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -174,6 +174,7 @@ files:
174
174
  - lib/evrone/ci/worker/middlewares/local_create_dirs.rb
175
175
  - lib/evrone/ci/worker/middlewares/local_script.rb
176
176
  - lib/evrone/ci/worker/middlewares/log_job.rb
177
+ - lib/evrone/ci/worker/middlewares/timeout.rb
177
178
  - lib/evrone/ci/worker/middlewares/update_job_status.rb
178
179
  - lib/evrone/ci/worker/version.rb
179
180
  - spec/lib/worker/configuration_spec.rb
@@ -185,6 +186,7 @@ files:
185
186
  - spec/lib/worker/middlewares/local_create_dirs_spec.rb
186
187
  - spec/lib/worker/middlewares/local_script_spec.rb
187
188
  - spec/lib/worker/middlewares/log_job_spec.rb
189
+ - spec/lib/worker/middlewares/timeout_spec.rb
188
190
  - spec/lib/worker/middlewares/update_job_status_spec.rb
189
191
  - spec/lib/worker_spec.rb
190
192
  - spec/spec_helper.rb
@@ -212,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
214
  version: 1.3.1
213
215
  requirements: []
214
216
  rubyforge_project:
215
- rubygems_version: 2.1.9
217
+ rubygems_version: 2.1.11
216
218
  signing_key:
217
219
  specification_version: 4
218
220
  summary: ci worker
@@ -226,6 +228,7 @@ test_files:
226
228
  - spec/lib/worker/middlewares/local_create_dirs_spec.rb
227
229
  - spec/lib/worker/middlewares/local_script_spec.rb
228
230
  - spec/lib/worker/middlewares/log_job_spec.rb
231
+ - spec/lib/worker/middlewares/timeout_spec.rb
229
232
  - spec/lib/worker/middlewares/update_job_status_spec.rb
230
233
  - spec/lib/worker_spec.rb
231
234
  - spec/spec_helper.rb