vx-builder 0.0.12 → 0.0.13

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: 7ab9ab91d17a55a73837109ae9902333b4e30ed6
4
- data.tar.gz: 22fffcd33f5f99ec84bbc212d543d77db9f33cd6
3
+ metadata.gz: 2337275d42297ff4b29ba6182f58b872f98eaa64
4
+ data.tar.gz: 6064c28dc12fbf2f69f2e609b650c64bbd8bdea8
5
5
  SHA512:
6
- metadata.gz: 0bd428270626503ae8b283dfcb87711e712d6dc8ea2245f22332c410e6f3292222dcca7a8804dd2a3edf778c5e4b59211aa0d3ddeadd7d752306fb0c523d1bac
7
- data.tar.gz: 7ec8fbc6099297b9c61f0b0ecd61a86a54af49ef856d88044437d66bf93fcfd59b9bfdc458cf5130ae6d2c23a84d0ebd1802deff589d7551334ad9bee640adc9
6
+ metadata.gz: 71dc59d14727f7b33483d8e480a6e81764ecc19fe95cd6b815af0be0b05857d47d5f254e2bd9811b4b106d48aca2549ef477722e30438ca641b75967ed12e400
7
+ data.tar.gz: a5a89fc805bb85257eaa20013e0462aeb3dbf7b67b4409fe56ae696df1437dac2a8c5fa6efc9e79d494b1175fab13418c22a658cd90d5fc70f22ccabfd317d32
data/lib/vx/builder.rb CHANGED
@@ -9,7 +9,6 @@ module Vx
9
9
 
10
10
  module Helper
11
11
  autoload :Config, File.expand_path("../builder/helper/config", __FILE__)
12
- autoload :Logger, File.expand_path("../builder/helper/logger", __FILE__)
13
12
  autoload :TraceShCommand, File.expand_path("../builder/helper/trace_sh_command", __FILE__)
14
13
  end
15
14
 
@@ -17,10 +16,6 @@ module Vx
17
16
 
18
17
  extend self
19
18
 
20
- def logger
21
- config.logger
22
- end
23
-
24
19
  def configure
25
20
  yield config if block_given?
26
21
  config
@@ -1,6 +1,4 @@
1
1
  require 'hashr'
2
- require 'logger'
3
- require 'vx/common/tagged_logging'
4
2
 
5
3
  module Vx
6
4
  module Builder
@@ -8,11 +6,10 @@ module Vx
8
6
 
9
7
  extend Hashr::EnvDefaults
10
8
 
11
- self.env_namespace = 'vx'
9
+ self.env_namespace = 'vx'
12
10
  self.raise_missing_keys = true
13
11
 
14
- define logger: Common::TaggedLogging.new(Logger.new STDOUT),
15
- casher_ruby: "/usr/local/rbenv/versions/1.9.3-p484/bin/ruby"
12
+ define casher_ruby: "/usr/local/rbenv/versions/1.9.3-p484/bin/ruby"
16
13
 
17
14
  end
18
15
  end
@@ -72,24 +72,25 @@ module Vx
72
72
  def default_env
73
73
  OpenStruct.new(
74
74
  # initialization, repo does not exists
75
- init: [],
75
+ init: [],
76
76
 
77
77
  # before instalation, using for system setup
78
- before_install: [],
78
+ before_install: [],
79
79
 
80
80
  # instalation, using for application setup
81
- install: [],
81
+ install: [],
82
82
 
83
83
  # announce software and services version
84
- announce: [],
84
+ announce: [],
85
85
 
86
- before_script: [],
87
- script: [],
88
- after_script: [],
86
+ before_script: [],
87
+ script: [],
88
+ after_script: [],
89
89
 
90
- source: source,
91
- task: task,
92
- cache_key: []
90
+ source: source,
91
+ task: task,
92
+ cache_key: [],
93
+ cached_directories: []
93
94
  )
94
95
  end
95
96
 
@@ -5,7 +5,6 @@ module Vx
5
5
  Cache = Struct.new(:app) do
6
6
 
7
7
  include Helper::Config
8
- include Helper::Logger
9
8
 
10
9
  CASHER_URL = "https://raw2.github.com/dima-exe/casher/master/bin/casher"
11
10
  CASHER_BIN = "$HOME/.casher/bin/casher"
@@ -13,7 +12,7 @@ module Vx
13
12
  def call(env)
14
13
  rs = app.call env
15
14
 
16
- if env.task.cache_url_prefix
15
+ if env.task.cache_url_prefix && enabled?(env)
17
16
  assign_url_to_env(env)
18
17
  prepare(env)
19
18
  fetch(env)
@@ -26,6 +25,11 @@ module Vx
26
25
 
27
26
  private
28
27
 
28
+ def enabled?(env)
29
+ puts env.cached_directories.inspect
30
+ !env.cached_directories.empty?
31
+ end
32
+
29
33
  def casher_cmd
30
34
  "test -f #{CASHER_BIN} && #{config.casher_ruby} #{CASHER_BIN}"
31
35
  end
@@ -73,7 +77,9 @@ module Vx
73
77
  end
74
78
 
75
79
  def add(env)
76
- env.init << "#{casher_cmd} add $HOME/cached || true"
80
+ env.cached_directories.each do |d|
81
+ env.init << "#{casher_cmd} add #{d} || true"
82
+ end
77
83
  env.init << "unset CASHER_DIR"
78
84
  end
79
85
 
@@ -13,8 +13,8 @@ module Vx
13
13
  env.before_install.tap do |i|
14
14
  i << 'eval "$(rbenv init -)" || true'
15
15
  i << "rbenv shell #{make_rbenv_version_command env}"
16
- i << "export BUNDLE_GEMFILE=${PWD}/#{gemfile(env)}"
17
- i << 'export GEM_HOME=$HOME/cached/rubygems'
16
+ i << trace_sh_command("export BUNDLE_GEMFILE=${PWD}/#{gemfile(env)}")
17
+ i << trace_sh_command('export GEM_HOME=~/.rubygems')
18
18
  end
19
19
 
20
20
  env.announce.tap do |a|
@@ -27,6 +27,10 @@ module Vx
27
27
  i << trace_sh_command("bundle install")
28
28
  i << trace_sh_command("bundle clean --force")
29
29
  end
30
+
31
+ if env.source.cached_directories != false
32
+ env.cached_directories.push "~/.rubygems"
33
+ end
30
34
  end
31
35
 
32
36
  app.call(env)
@@ -52,6 +52,14 @@ module Vx
52
52
  attributes["env"]["global"]
53
53
  end
54
54
 
55
+ def cached_directories
56
+ if attributes["cache"] == false
57
+ false
58
+ else
59
+ (attributes["cache"] && attributes["cache"]["directories"]) || []
60
+ end
61
+ end
62
+
55
63
  AS_ARRAY.each do |m|
56
64
  define_method m do
57
65
  @attributes[m] || []
@@ -1,5 +1,5 @@
1
1
  module Vx
2
2
  module Builder
3
- VERSION = "0.0.12"
3
+ VERSION = "0.0.13"
4
4
  end
5
5
  end
@@ -7,3 +7,7 @@ before_script:
7
7
  before_install:
8
8
  - "echo before_install"
9
9
  script: "RAILS_ENV=test ls -1 && echo DONE!"
10
+
11
+ cache:
12
+ directories:
13
+ - ~/.cache
@@ -1,6 +1,5 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Vx::Builder::Configuration do
4
- its(:logger) { should be }
5
- its(:casher_ruby) { should be }
4
+ its(:casher_ruby) { should be }
6
5
  end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Vx::Builder::Script::Cache do
4
+ let(:app) { ->(env) { env } }
5
+ let(:script) { described_class.new app }
6
+ let(:env) { create :env }
7
+ let(:run) { script.call env }
8
+ subject { run }
9
+
10
+ it { should eq env }
11
+
12
+ end
@@ -1,25 +1,28 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Vx::Builder::Script::Ruby do
4
- let(:app) { ->(_) { 0 } }
4
+ let(:app) { ->(env) { env } }
5
5
  let(:script) { described_class.new app }
6
6
  let(:env) { create :env }
7
7
  let(:run) { script.call env }
8
8
  subject { run }
9
9
 
10
- it { should eq 0 }
10
+ it { should eq env }
11
11
 
12
12
  context "run it" do
13
13
  let(:command) { create :command_from_env, env: env }
14
- before { run }
14
+ subject { env }
15
15
 
16
- it "should be success" do
17
- puts env
18
- puts command
16
+ before { run }
19
17
 
20
- system( command )
21
- expect($?.to_i).to eq 0
18
+ context "should be success" do
19
+ its(:before_install) { should_not be_empty }
20
+ its(:announce) { should_not be_empty }
21
+ its(:install) { should_not be_empty }
22
+ its(:cached_directories) { should eq %w{ ~/.rubygems } }
22
23
  end
24
+
25
+
23
26
  end
24
27
 
25
28
  end
@@ -1,8 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Vx::Builder::Source do
4
- let(:content) { YAML.load fixture('travis.yml') }
5
- let(:config) { described_class.from_attributes content }
4
+ let(:default_content) { YAML.load fixture('travis.yml') }
5
+ let(:content) { default_content }
6
+ let(:config) { described_class.from_attributes content }
6
7
  subject { config }
7
8
 
8
9
  its(:attributes) { should be }
@@ -24,6 +25,27 @@ describe Vx::Builder::Source do
24
25
  end
25
26
  end
26
27
 
28
+ context "cached_directories" do
29
+ subject { config.cached_directories }
30
+ context "when cache is false" do
31
+ let(:content) { default_content.merge("cache" => false) }
32
+ it { should be_false }
33
+ end
34
+ context "when cache is nil" do
35
+ let(:content) { default_content.delete("cache") && default_content }
36
+ it { should eq [] }
37
+ end
38
+
39
+ context "when cache.directories is nil" do
40
+ let(:content) { default_content["cache"].delete("directories") && default_content }
41
+ it { should eq [] }
42
+ end
43
+
44
+ context "when exists" do
45
+ it { should eq ["~/.cache"] }
46
+ end
47
+ end
48
+
27
49
  context "(serialization)" do
28
50
 
29
51
  context "build new instance" do
@@ -31,6 +53,9 @@ describe Vx::Builder::Source do
31
53
  "rvm" => ["2.0.0"],
32
54
  "gemfile" => ["Gemfile"],
33
55
  "before_script" => ["echo before_script"],
56
+ "cache" => {
57
+ "directories"=>["~/.cache"]
58
+ },
34
59
  "before_install" => ["echo before_install"],
35
60
  "script" => ["RAILS_ENV=test ls -1 && echo DONE!"],
36
61
  "env" => {
@@ -55,7 +80,10 @@ describe Vx::Builder::Source do
55
80
  gemfile: "Gemfile",
56
81
  before_script: "echo before_script",
57
82
  before_install: "echo before_install",
58
- script: "RAILS_ENV=test ls -1 && echo DONE!"
83
+ script: "RAILS_ENV=test ls -1 && echo DONE!",
84
+ cache: {
85
+ "directories" => ["~/.cache"]
86
+ }
59
87
  }}
60
88
  subject { described_class.from_attributes(attrs).attributes }
61
89
  it { should eq expected }
@@ -3,7 +3,6 @@ require 'spec_helper'
3
3
  describe Vx::Builder do
4
4
  subject { described_class }
5
5
 
6
- its(:logger) { should be }
7
6
  its(:config) { should be }
8
7
 
9
8
  context ".configure" do
@@ -12,7 +12,8 @@ def create(name, options = {})
12
12
  msg.src,
13
13
  msg.sha,
14
14
  deploy_key: msg.deploy_key,
15
- branch: msg.branch
15
+ branch: msg.branch,
16
+ cache_url_prefix: "http://example.com/"
16
17
  )
17
18
 
18
19
  when :source
@@ -29,7 +30,8 @@ def create(name, options = {})
29
30
  after_script: [],
30
31
  source: create(:source),
31
32
  task: create(:task),
32
- cache_key: []
33
+ cache_key: [],
34
+ cached_directories: []
33
35
  )
34
36
 
35
37
  when :command_from_env
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vx-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-04 00:00:00.000000000 Z
11
+ date: 2014-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vx-common
@@ -125,7 +125,6 @@ files:
125
125
  - lib/vx/builder.rb
126
126
  - lib/vx/builder/configuration.rb
127
127
  - lib/vx/builder/helper/config.rb
128
- - lib/vx/builder/helper/logger.rb
129
128
  - lib/vx/builder/helper/trace_sh_command.rb
130
129
  - lib/vx/builder/script.rb
131
130
  - lib/vx/builder/script/cache.rb
@@ -144,6 +143,7 @@ files:
144
143
  - spec/fixtures/travis_bug_1.yml
145
144
  - spec/fixtures/travis_bug_2.yml
146
145
  - spec/lib/builder/configuration_spec.rb
146
+ - spec/lib/builder/script/cache_spec.rb
147
147
  - spec/lib/builder/script/env_spec.rb
148
148
  - spec/lib/builder/script/prepare_spec.rb
149
149
  - spec/lib/builder/script/ruby_spec.rb
@@ -185,6 +185,7 @@ test_files:
185
185
  - spec/fixtures/travis_bug_1.yml
186
186
  - spec/fixtures/travis_bug_2.yml
187
187
  - spec/lib/builder/configuration_spec.rb
188
+ - spec/lib/builder/script/cache_spec.rb
188
189
  - spec/lib/builder/script/env_spec.rb
189
190
  - spec/lib/builder/script/prepare_spec.rb
190
191
  - spec/lib/builder/script/ruby_spec.rb
@@ -1,14 +0,0 @@
1
- module Vx
2
- module Builder
3
- module Helper
4
- module Logger
5
-
6
- def logger
7
- Builder.logger
8
- end
9
-
10
- end
11
-
12
- end
13
- end
14
- end