evrone-ci-router 0.2.0.pre23 → 0.2.0.pre24
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 +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
|