evrone-ci-router 0.2.0.pre0

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.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +7 -0
  5. data/README.md +1 -0
  6. data/Rakefile +22 -0
  7. data/bin/cli +3 -0
  8. data/bin/git_ssh +3 -0
  9. data/bin/jobs_publisher +12 -0
  10. data/bin/workers +13 -0
  11. data/evrone-ci-router.gemspec +30 -0
  12. data/fixtures/travis.yml +5 -0
  13. data/lib/evrone/ci/router.rb +100 -0
  14. data/lib/evrone/ci/router/build.rb +60 -0
  15. data/lib/evrone/ci/router/build_matrix.rb +89 -0
  16. data/lib/evrone/ci/router/configuration.rb +27 -0
  17. data/lib/evrone/ci/router/consumers/build_logs_consumer.rb +15 -0
  18. data/lib/evrone/ci/router/consumers/build_status_consumer.rb +15 -0
  19. data/lib/evrone/ci/router/consumers/builds_consumer.rb +28 -0
  20. data/lib/evrone/ci/router/consumers/jobs_consumer.rb +15 -0
  21. data/lib/evrone/ci/router/ext/array.rb +5 -0
  22. data/lib/evrone/ci/router/ext/string.rb +9 -0
  23. data/lib/evrone/ci/router/helper/config.rb +13 -0
  24. data/lib/evrone/ci/router/helper/logger.rb +13 -0
  25. data/lib/evrone/ci/router/helper/trace_sh_command.rb +14 -0
  26. data/lib/evrone/ci/router/initializers/amqp.rb +63 -0
  27. data/lib/evrone/ci/router/middleware/create_build_matrix.rb +54 -0
  28. data/lib/evrone/ci/router/middleware/create_dirs.rb +25 -0
  29. data/lib/evrone/ci/router/middleware/fetch_commit_info.rb +22 -0
  30. data/lib/evrone/ci/router/middleware/fetch_source.rb +36 -0
  31. data/lib/evrone/ci/router/middleware/log_build.rb +24 -0
  32. data/lib/evrone/ci/router/middleware/travis/env.rb +21 -0
  33. data/lib/evrone/ci/router/middleware/travis/ruby.rb +55 -0
  34. data/lib/evrone/ci/router/middleware/travis/script.rb +25 -0
  35. data/lib/evrone/ci/router/middleware/update_build_status.rb +75 -0
  36. data/lib/evrone/ci/router/queue.rb +58 -0
  37. data/lib/evrone/ci/router/travis.rb +104 -0
  38. data/lib/evrone/ci/router/travis/serializable.rb +45 -0
  39. data/lib/evrone/ci/router/version.rb +7 -0
  40. data/spec/lib/build_matrix_spec.rb +145 -0
  41. data/spec/lib/build_spec.rb +75 -0
  42. data/spec/lib/configuration_spec.rb +22 -0
  43. data/spec/lib/middleware/create_build_matrix_spec.rb +73 -0
  44. data/spec/lib/middleware/create_dirs_spec.rb +26 -0
  45. data/spec/lib/middleware/fetch_commit_info_spec.rb +23 -0
  46. data/spec/lib/middleware/fetch_source_spec.rb +27 -0
  47. data/spec/lib/middleware/log_build_spec.rb +14 -0
  48. data/spec/lib/middleware/update_build_status_spec.rb +70 -0
  49. data/spec/lib/queue_spec.rb +55 -0
  50. data/spec/lib/travis_spec.rb +182 -0
  51. data/spec/spec_helper.rb +17 -0
  52. data/spec/support/create.rb +47 -0
  53. data/spec/support/fixture.rb +7 -0
  54. data/spec/support/shared_examples/update_build_status_message.rb +5 -0
  55. metadata +228 -0
@@ -0,0 +1,17 @@
1
+ require File.expand_path '../../lib/evrone/ci/router', __FILE__
2
+
3
+ Bundler.require(:test)
4
+ require 'rspec/autorun'
5
+ require 'evrone/common/amqp/testing'
6
+ require 'evrone/ci/message/testing'
7
+
8
+ Dir[File.expand_path("../..", __FILE__) + "/spec/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+ config.mock_with :rr
12
+
13
+ config.before(:each) do
14
+ Evrone::Common::AMQP::Testing.clear
15
+ Evrone::CI::Router.reset_config!
16
+ end
17
+ end
@@ -0,0 +1,47 @@
1
+ require 'yaml'
2
+
3
+ def create(who, *args)
4
+
5
+ options = args.last.is_a?(Hash) ? args.pop : {}
6
+
7
+ case who
8
+
9
+ when :local_repo
10
+ Evrone::CI::Router.root.join("fixtures/repo").to_s
11
+
12
+ when :travis
13
+ klass = Evrone::CI::Router::Travis
14
+ travis = nil
15
+ if options[:yaml]
16
+ travis = klass.from_yaml options[:yaml]
17
+ elsif options[:attributes]
18
+ travis = klass.from_attributes options[:attributes]
19
+ else
20
+ klass.from_yaml fixture("travis.yml")
21
+ end
22
+
23
+ when :message
24
+ name = args.shift
25
+
26
+ klass = Evrone::CI::Message.const_get name
27
+ klass.test_message options
28
+
29
+ when :build
30
+ message = options[:message] || create(:message, 'PerformBuild', options)
31
+ Evrone::CI::Router::Build.new message
32
+
33
+ when :git
34
+ build = args.shift
35
+ path = args.shift
36
+ Evrone::CI::SCM::Git.new build.src, build.sha, path, deploy_key: build.deploy_key, &build.method(:add_to_output)
37
+
38
+ when :commit_info
39
+ OpenStruct.new(
40
+ sha: "sha",
41
+ author: "author",
42
+ email: "email",
43
+ message: "message"
44
+ )
45
+ end
46
+
47
+ end
@@ -0,0 +1,7 @@
1
+ def fixture(name)
2
+ File.read fixture_path(name)
3
+ end
4
+
5
+ def fixture_path(name)
6
+ Evrone::CI::Router.root.join("fixtures", name.to_s)
7
+ end
@@ -0,0 +1,5 @@
1
+ shared_examples "UpdateBuildStatus message" do
2
+ its(:build_id) { should eq build.message.id }
3
+ its(:tm) { should be }
4
+ its(:tm_usec) { should be }
5
+ end
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: evrone-ci-router
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0.pre0
5
+ platform: ruby
6
+ authors:
7
+ - Dmitry Galinsky
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: evrone-ci-common
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.0.pre0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.0.pre0
27
+ - !ruby/object:Gem::Dependency
28
+ name: evrone-ci-message
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.2.0.pre0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.2.0.pre0
41
+ - !ruby/object:Gem::Dependency
42
+ name: evrone-common-amqp
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: hashr
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.22
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.0.22
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '1.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '1.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rr
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: ' ci router '
126
+ email:
127
+ - dima.exe@gmail.com
128
+ executables:
129
+ - cli
130
+ - git_ssh
131
+ - jobs_publisher
132
+ - workers
133
+ extensions: []
134
+ extra_rdoc_files: []
135
+ files:
136
+ - .gitignore
137
+ - .rspec
138
+ - Gemfile
139
+ - README.md
140
+ - Rakefile
141
+ - bin/cli
142
+ - bin/git_ssh
143
+ - bin/jobs_publisher
144
+ - bin/workers
145
+ - evrone-ci-router.gemspec
146
+ - fixtures/travis.yml
147
+ - lib/evrone/ci/router.rb
148
+ - lib/evrone/ci/router/build.rb
149
+ - lib/evrone/ci/router/build_matrix.rb
150
+ - lib/evrone/ci/router/configuration.rb
151
+ - lib/evrone/ci/router/consumers/build_logs_consumer.rb
152
+ - lib/evrone/ci/router/consumers/build_status_consumer.rb
153
+ - lib/evrone/ci/router/consumers/builds_consumer.rb
154
+ - lib/evrone/ci/router/consumers/jobs_consumer.rb
155
+ - lib/evrone/ci/router/ext/array.rb
156
+ - lib/evrone/ci/router/ext/string.rb
157
+ - lib/evrone/ci/router/helper/config.rb
158
+ - lib/evrone/ci/router/helper/logger.rb
159
+ - lib/evrone/ci/router/helper/trace_sh_command.rb
160
+ - lib/evrone/ci/router/initializers/amqp.rb
161
+ - lib/evrone/ci/router/middleware/create_build_matrix.rb
162
+ - lib/evrone/ci/router/middleware/create_dirs.rb
163
+ - lib/evrone/ci/router/middleware/fetch_commit_info.rb
164
+ - lib/evrone/ci/router/middleware/fetch_source.rb
165
+ - lib/evrone/ci/router/middleware/log_build.rb
166
+ - lib/evrone/ci/router/middleware/travis/env.rb
167
+ - lib/evrone/ci/router/middleware/travis/ruby.rb
168
+ - lib/evrone/ci/router/middleware/travis/script.rb
169
+ - lib/evrone/ci/router/middleware/update_build_status.rb
170
+ - lib/evrone/ci/router/queue.rb
171
+ - lib/evrone/ci/router/travis.rb
172
+ - lib/evrone/ci/router/travis/serializable.rb
173
+ - lib/evrone/ci/router/version.rb
174
+ - spec/lib/build_matrix_spec.rb
175
+ - spec/lib/build_spec.rb
176
+ - spec/lib/configuration_spec.rb
177
+ - spec/lib/middleware/create_build_matrix_spec.rb
178
+ - spec/lib/middleware/create_dirs_spec.rb
179
+ - spec/lib/middleware/fetch_commit_info_spec.rb
180
+ - spec/lib/middleware/fetch_source_spec.rb
181
+ - spec/lib/middleware/log_build_spec.rb
182
+ - spec/lib/middleware/update_build_status_spec.rb
183
+ - spec/lib/queue_spec.rb
184
+ - spec/lib/travis_spec.rb
185
+ - spec/spec_helper.rb
186
+ - spec/support/create.rb
187
+ - spec/support/fixture.rb
188
+ - spec/support/shared_examples/update_build_status_message.rb
189
+ homepage: ''
190
+ licenses:
191
+ - MIT
192
+ metadata: {}
193
+ post_install_message:
194
+ rdoc_options: []
195
+ require_paths:
196
+ - lib
197
+ required_ruby_version: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - '>'
205
+ - !ruby/object:Gem::Version
206
+ version: 1.3.1
207
+ requirements: []
208
+ rubyforge_project:
209
+ rubygems_version: 2.0.2
210
+ signing_key:
211
+ specification_version: 4
212
+ summary: ci router
213
+ test_files:
214
+ - spec/lib/build_matrix_spec.rb
215
+ - spec/lib/build_spec.rb
216
+ - spec/lib/configuration_spec.rb
217
+ - spec/lib/middleware/create_build_matrix_spec.rb
218
+ - spec/lib/middleware/create_dirs_spec.rb
219
+ - spec/lib/middleware/fetch_commit_info_spec.rb
220
+ - spec/lib/middleware/fetch_source_spec.rb
221
+ - spec/lib/middleware/log_build_spec.rb
222
+ - spec/lib/middleware/update_build_status_spec.rb
223
+ - spec/lib/queue_spec.rb
224
+ - spec/lib/travis_spec.rb
225
+ - spec/spec_helper.rb
226
+ - spec/support/create.rb
227
+ - spec/support/fixture.rb
228
+ - spec/support/shared_examples/update_build_status_message.rb