evrone-ci-router 0.2.0.pre23 → 0.2.0.pre24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/evrone/ci/router/script_builder.rb +1 -0
- data/lib/evrone/ci/router/script_builder/ruby.rb +2 -0
- data/lib/evrone/ci/router/script_builder/webdav_cache.rb +28 -14
- data/lib/evrone/ci/router/version.rb +1 -1
- data/spec/lib/script_builder/webdav_cache_spec.rb +13 -3
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4cf334ca7780d999da82d083110de69fb5985109
|
4
|
+
data.tar.gz: a4be0b9b40b980822f47c775a850a46353a99872
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c001563d39698c83d532272e48a385fdd7372c721655772a8e843beb560b3c4242c025d080900c3ab7420a626a2cde3b9ca1a1912fa1c29a37bcea95b862f1c
|
7
|
+
data.tar.gz: c4fe2c98e7b4d5df2fc8abd20b038759aa7d3457aed489ce623ba270fb8f5e0ef5a915400677aee2cd93813757a8da484f9fa270b56665b5c29298b6d9eea3b3
|
@@ -12,6 +12,8 @@ module Evrone
|
|
12
12
|
CASHER_BIN = "$HOME/.casher/bin/casher"
|
13
13
|
|
14
14
|
def call(env)
|
15
|
+
rs = app.call env
|
16
|
+
|
15
17
|
if config.webdav_cache_url
|
16
18
|
assign_url_to_env(env)
|
17
19
|
prepare(env)
|
@@ -19,24 +21,35 @@ module Evrone
|
|
19
21
|
add(env)
|
20
22
|
push(env)
|
21
23
|
end
|
22
|
-
|
24
|
+
|
25
|
+
rs
|
23
26
|
end
|
24
27
|
|
25
28
|
private
|
26
29
|
|
27
30
|
def assign_url_to_env(env)
|
28
|
-
|
29
|
-
|
31
|
+
urls = []
|
32
|
+
branch = env.build.message.branch
|
33
|
+
if branch != 'master'
|
34
|
+
urls << url_for(env, branch)
|
35
|
+
end
|
36
|
+
puts urls.inspect
|
37
|
+
urls << url_for(env, 'master')
|
30
38
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
39
|
+
env.webdav_fetch_url = urls
|
40
|
+
env.webdav_push_url = url_for(env, branch)
|
41
|
+
env
|
42
|
+
end
|
43
|
+
|
44
|
+
def url_for(env, branch)
|
45
|
+
name = []
|
35
46
|
|
36
|
-
name
|
37
|
-
name <<
|
47
|
+
name << env.build.message.name.dup
|
48
|
+
name << branch
|
49
|
+
name += env.cache_key
|
38
50
|
|
39
|
-
|
51
|
+
name = name.join("-").gsub(/[^a-z0-9_\-.]/, '-')
|
52
|
+
"#{config.webdav_cache_url}/#{name}.tgz"
|
40
53
|
end
|
41
54
|
|
42
55
|
def prepare(env)
|
@@ -51,8 +64,8 @@ module Evrone
|
|
51
64
|
end
|
52
65
|
|
53
66
|
def fetch(env)
|
54
|
-
env.
|
55
|
-
env.init << "#{CASHER_BIN} fetch #{
|
67
|
+
urls = env.webdav_fetch_url.join(" ")
|
68
|
+
env.init << "#{CASHER_BIN} fetch #{urls} || true"
|
56
69
|
end
|
57
70
|
|
58
71
|
def add(env)
|
@@ -61,8 +74,9 @@ module Evrone
|
|
61
74
|
end
|
62
75
|
|
63
76
|
def push(env)
|
64
|
-
env.
|
65
|
-
|
77
|
+
if env.webdav_push_url
|
78
|
+
env.after_script << "#{CASHER_BIN} push #{env.webdav_push_url}"
|
79
|
+
end
|
66
80
|
end
|
67
81
|
|
68
82
|
end
|
@@ -5,9 +5,15 @@ require 'fileutils'
|
|
5
5
|
describe Evrone::CI::Router::ScriptBuilder::WebdavCache do
|
6
6
|
let(:path) { '/tmp/.test' }
|
7
7
|
let(:app) { ->(_) { _ } }
|
8
|
-
let(:build) { create :build }
|
8
|
+
let(:build) { create :build, branch: "feature" }
|
9
9
|
let(:config) { create :configuration }
|
10
|
-
let(:env) { OpenStruct.new
|
10
|
+
let(:env) { OpenStruct.new(
|
11
|
+
build: build,
|
12
|
+
init: [],
|
13
|
+
configuration: config,
|
14
|
+
after_script: [],
|
15
|
+
cache_key: ['rvm-1.9.3']
|
16
|
+
)}
|
11
17
|
let(:mid) { described_class.new app }
|
12
18
|
|
13
19
|
subject { mid.call env }
|
@@ -26,7 +32,11 @@ describe Evrone::CI::Router::ScriptBuilder::WebdavCache do
|
|
26
32
|
it { should eq env }
|
27
33
|
its(:init) { should_not be_empty }
|
28
34
|
its(:after_script) { should_not be_empty }
|
29
|
-
its(:
|
35
|
+
its(:webdav_push_url) { should eq "http://localhost:8080/evrone-test-repo-feature-rvm-1.9.3.tgz" }
|
36
|
+
its(:webdav_fetch_url) { should eq(
|
37
|
+
["http://localhost:8080/evrone-test-repo-feature-rvm-1.9.3.tgz",
|
38
|
+
"http://localhost:8080/evrone-test-repo-master-rvm-1.9.3.tgz"]
|
39
|
+
) }
|
30
40
|
|
31
41
|
context "execute command" do
|
32
42
|
include Evrone::Common::Spawn
|
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.
|
4
|
+
version: 0.2.0.pre24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Galinsky
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.2.0.
|
19
|
+
version: 0.2.0.pre24
|
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.
|
26
|
+
version: 0.2.0.pre24
|
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.
|
33
|
+
version: 0.2.0.pre24
|
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.
|
40
|
+
version: 0.2.0.pre24
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: evrone-ci-build_configuration
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.2.0.
|
47
|
+
version: 0.2.0.pre24
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.2.0.
|
54
|
+
version: 0.2.0.pre24
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: evrone-common-amqp
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|