evrone-ci-router 0.2.0.pre3 → 0.2.0.pre4

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: fbdfc3042cc3a96d761347400e67482f9517fd19
4
- data.tar.gz: 2f2e905f4511aa5da16dd819c6d25840568311af
3
+ metadata.gz: 5f07b623520997770118ec0c990da47e9307969f
4
+ data.tar.gz: 3bd64424754d66dffb5f17e7340ddc632d003c33
5
5
  SHA512:
6
- metadata.gz: 9be6a237a177cc2b04d3df19189f4e47b202e26914eb3a1e942b454bed71b211a8666f095cecf6ac930eb645e5eff9230d517d76e042570af77e192601cbb8ef
7
- data.tar.gz: 6fe0b6691129097ed73b6809ec5d1687036a45d1ae5d0f5297f48eca41cd5f03ae78bf86bc891e206d0de3d76d3c38b372c056f85deb04590af8038c22f296bf
6
+ metadata.gz: ffefbb4db637a63ac918df5aa001988f677d38a60c9af4d6735bbf23ec025150353ece55b2803be93e2e11830e7969580aa98653b1567bddd8f7d7d2953c11b1
7
+ data.tar.gz: 843ee07a50d637b045f38bcdf08621ab5dfc08991844e6fc6e5f3013a5e73e77c529e011af3b232b427790f6e089e674d821018c245cbc817ac04418c9c70d63
@@ -30,7 +30,6 @@ module Evrone
30
30
  name: message.name,
31
31
  src: message.src,
32
32
  sha: sha,
33
- pull_request_id: message.pull_request_id,
34
33
  deploy_key: message.deploy_key,
35
34
  job_id: job_id,
36
35
  before_script: script_builder.to_before_script,
@@ -46,7 +45,6 @@ module Evrone
46
45
  build_id: message.id,
47
46
  status: status,
48
47
  tm: tm.to_i,
49
- tm_usec: tm.usec,
50
48
  jobs_count: jobs_count || 0,
51
49
  }
52
50
 
@@ -3,7 +3,7 @@ module Evrone
3
3
  class Router
4
4
  class BuildMatrix
5
5
 
6
- KEYS = (Travis::LANGS + %w{ env }).freeze
6
+ KEYS = (Travis::LANGS + %w{ matrix_env:env }).freeze
7
7
  NOT_MATRIX_KEYS = %w{ script before_script }
8
8
 
9
9
  attr_reader :travis
@@ -17,16 +17,30 @@ module Evrone
17
17
  end
18
18
 
19
19
  def travises
20
- attributes_for_new_travises.map do |attrs|
21
- Travis.new attrs.merge(
20
+ attributes_for_new_travises_with_merged_env.map do |attrs|
21
+ attrs = attrs.merge(
22
22
  NOT_MATRIX_KEYS.inject({}) do |a,v|
23
23
  a[v] = travis.public_send(v)
24
24
  a
25
25
  end
26
26
  )
27
+ Travis.new attrs
27
28
  end
28
29
  end
29
30
 
31
+ def attributes_for_new_travises_with_merged_env
32
+ attrs = attributes_for_new_travises
33
+ attrs.map do |a|
34
+ e = a["env"]
35
+ a["env"] = {
36
+ "global" => Array(e) + travis.global_env,
37
+ "matrix" => e
38
+ }
39
+ a
40
+ end
41
+ attrs
42
+ end
43
+
30
44
  def attributes_for_new_travises
31
45
  permutate_and_build_values.inject([]) do |ac, values|
32
46
  ac << values.inject({}) do |a,val|
@@ -56,8 +70,11 @@ module Evrone
56
70
 
57
71
  def extract_pair_of_key_and_values
58
72
  KEYS.map.inject([]) do |a, k|
59
- if (val = travis[k]) && !val.empty?
60
- a << [k, val]
73
+ k_method, k_name = k.split(":")
74
+ k_name ||= k_method
75
+
76
+ if (val = travis[k_method]) && !val.empty?
77
+ a << [k_name, val]
61
78
  end
62
79
  a
63
80
  end
@@ -9,6 +9,9 @@ module Evrone
9
9
 
10
10
  def call(env)
11
11
  env.init << 'export LC_ALL=en_US.UTF8'
12
+ env.travis.global_env.each do |e|
13
+ env.init << trace_sh_command("export #{e}")
14
+ end
12
15
  env.before_install << trace_sh_command("env")
13
16
  app.call(env)
14
17
  end
@@ -25,9 +25,11 @@ module Evrone
25
25
  def matrix_keys
26
26
  @matrix_keys ||=
27
27
  BuildMatrix::KEYS.inject([]) do |a,k|
28
- val = send(k)
28
+ k_method, k_name = k.split(":")
29
+ k_name ||= k_method
30
+ val = send(k_method)
29
31
  unless val.empty?
30
- a << val.map{|v| "#{k}:#{v}" }
32
+ a << val.map{|v| "#{k_name}:#{v}" }
31
33
  end
32
34
  a
33
35
  end.flatten.sort
@@ -42,6 +44,10 @@ module Evrone
42
44
  end
43
45
 
44
46
  def env
47
+ attributes["env"]
48
+ end
49
+
50
+ def matrix_env
45
51
  attributes["env"]["matrix"]
46
52
  end
47
53
 
@@ -1,7 +1,7 @@
1
1
  module Evrone
2
2
  module CI
3
3
  class Router
4
- VERSION = "0.2.0.pre3"
4
+ VERSION = "0.2.0.pre4"
5
5
  end
6
6
  end
7
7
  end
@@ -74,6 +74,25 @@ describe Evrone::CI::Router::BuildMatrix do
74
74
  end
75
75
  end
76
76
 
77
+ context "attributes_for_new_travises_with_merged_env" do
78
+ subject { matrix.attributes_for_new_travises_with_merged_env }
79
+
80
+ before do
81
+ attributes.merge!(
82
+ env: {
83
+ "global" => "FOO=1",
84
+ "matrix" => %w{ BAR=1 BAR=2 }
85
+ }
86
+ )
87
+ end
88
+
89
+ it { should have(12).items }
90
+
91
+ it "should merge matrix env to global env" do
92
+ expect(subject.map{|i| i["env"]["global"] }.uniq.sort).to eq([["BAR=1", "FOO=1"], ["BAR=2", "FOO=1"]])
93
+ end
94
+ end
95
+
77
96
  context 'attributes_for_new_travises' do
78
97
  subject { matrix.attributes_for_new_travises }
79
98
 
@@ -39,7 +39,6 @@ describe Evrone::CI::Router::Build do
39
39
  its(:build_id) { should eq build.message.id }
40
40
  its(:status) { should eq 2 }
41
41
  its(:tm) { should be }
42
- its(:tm_usec) { should be }
43
42
  its(:jobs_count) { should eq 1 }
44
43
 
45
44
  context "when commit_info exists" do
@@ -145,17 +145,17 @@ describe Evrone::CI::Router::Travis do
145
145
 
146
146
  context "when attributes[env] is Array" do
147
147
  let(:env) { %w{ FOO=1 BAR=2 } }
148
- it { should eq %w{ FOO=1 BAR=2 } }
148
+ it { should eq("matrix"=>["FOO=1", "BAR=2"], "global"=>[]) }
149
149
  end
150
150
 
151
151
  context "when attributes[env] is Hash" do
152
152
  let(:env) { { "matrix" => %w{ BAZ=1 } } }
153
- it { should eq %w{ BAZ=1 } }
153
+ it { should eq("matrix"=>["BAZ=1"], "global"=>[]) }
154
154
  end
155
155
 
156
156
  context "when attributes[env] is empty" do
157
157
  let(:env) { {} }
158
- it { should eq([]) }
158
+ it { should eq("matrix"=>[], "global"=>[]) }
159
159
  end
160
160
  end
161
161
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evrone-ci-router
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.pre3
4
+ version: 0.2.0.pre4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.0.pre3
19
+ version: 0.2.0.pre4
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.pre3
26
+ version: 0.2.0.pre4
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.pre3
33
+ version: 0.2.0.pre4
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.pre3
40
+ version: 0.2.0.pre4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: evrone-common-amqp
43
43
  requirement: !ruby/object:Gem::Requirement