vx-builder 0.5.3 → 0.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vx/builder/build_configuration.rb +5 -2
- data/lib/vx/builder/script_builder/rust.rb +48 -0
- data/lib/vx/builder/script_builder.rb +2 -0
- data/lib/vx/builder/version.rb +1 -1
- data/spec/fixtures/travis.yml +2 -0
- data/spec/integration/rust_spec.rb +42 -0
- data/spec/lib/builder/build_configuration_spec.rb +1 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4de00411572ac7ab2b707e90b4aad89eb7cd4f1
|
4
|
+
data.tar.gz: 9c46eb763946c96bc5419ab6472404934ff2cf6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11681345019e7cdcaca8d653a555002f768170242921ae59b64d38df09e4c2b42cf56334dd41f96348fa5fcfe7aed391f9130898b333748956d89595e66648de
|
7
|
+
data.tar.gz: 9b1cfcf769202916faecec9270aea22df29fbbd302972d833abb525f36515bdf8a803119f424bff3837e1e2623e68d052046f2025281b9b8d80297c00d4fc210
|
@@ -13,9 +13,11 @@ module Vx
|
|
13
13
|
scala
|
14
14
|
jdk
|
15
15
|
go
|
16
|
+
node_js
|
17
|
+
rust
|
18
|
+
|
16
19
|
language
|
17
20
|
script
|
18
|
-
node_js
|
19
21
|
}
|
20
22
|
|
21
23
|
ATTRIBUTES = %w{
|
@@ -24,8 +26,9 @@ module Vx
|
|
24
26
|
jdk
|
25
27
|
go
|
26
28
|
node_js
|
27
|
-
|
29
|
+
rust
|
28
30
|
|
31
|
+
language
|
29
32
|
gemfile
|
30
33
|
services
|
31
34
|
image
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Vx
|
2
|
+
module Builder
|
3
|
+
class ScriptBuilder
|
4
|
+
|
5
|
+
class Rust < Base
|
6
|
+
|
7
|
+
DEFAULT_RUST = '0.11.0'
|
8
|
+
|
9
|
+
def call(env)
|
10
|
+
if enabled?(env)
|
11
|
+
|
12
|
+
vxvm_install(env, 'rust', rust_version(env))
|
13
|
+
|
14
|
+
do_cache_key(env) do |i|
|
15
|
+
i << "rust-#{rust_version env}"
|
16
|
+
end
|
17
|
+
|
18
|
+
do_install(env) do |i|
|
19
|
+
i << trace_sh_command("git submodule init")
|
20
|
+
i << trace_sh_command("git submodule update")
|
21
|
+
end
|
22
|
+
|
23
|
+
do_announce(env) do |i|
|
24
|
+
i << trace_sh_command("rustc --version")
|
25
|
+
end
|
26
|
+
|
27
|
+
do_script(env) do |i|
|
28
|
+
i << trace_sh_command("if [ -f Makefile ] ; then make ; fi", trace: "make")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
app.call(env)
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def enabled?(env)
|
38
|
+
env.source.rust.first || env.source.language == 'rust'
|
39
|
+
end
|
40
|
+
|
41
|
+
def rust_version(env)
|
42
|
+
env.source.rust.first || DEFAULT_RUST
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -12,6 +12,7 @@ module Vx
|
|
12
12
|
autoload :Java, File.expand_path("../script_builder/java", __FILE__)
|
13
13
|
autoload :Scala, File.expand_path("../script_builder/scala", __FILE__)
|
14
14
|
autoload :Clojure, File.expand_path("../script_builder/clojure", __FILE__)
|
15
|
+
autoload :Rust, File.expand_path("../script_builder/rust", __FILE__)
|
15
16
|
autoload :Prepare, File.expand_path("../script_builder/prepare", __FILE__)
|
16
17
|
autoload :Databases, File.expand_path("../script_builder/databases", __FILE__)
|
17
18
|
autoload :Cache, File.expand_path("../script_builder/cache", __FILE__)
|
@@ -35,6 +36,7 @@ module Vx
|
|
35
36
|
use Builder::ScriptBuilder::Ruby
|
36
37
|
use Builder::ScriptBuilder::Go
|
37
38
|
use Builder::ScriptBuilder::Nodejs
|
39
|
+
use Builder::ScriptBuilder::Rust
|
38
40
|
|
39
41
|
use Builder::ScriptBuilder::Deploy
|
40
42
|
use Builder::ScriptBuilder::Defaults
|
data/lib/vx/builder/version.rb
CHANGED
data/spec/fixtures/travis.yml
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'yaml'
|
3
|
+
require 'tmpdir'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
describe "(integration) rust" do
|
7
|
+
let(:path) { Dir.tmpdir + "/vx-builder-test" }
|
8
|
+
|
9
|
+
before do
|
10
|
+
FileUtils.rm_rf(path)
|
11
|
+
FileUtils.mkdir_p(path)
|
12
|
+
end
|
13
|
+
after { FileUtils.rm_rf(path) }
|
14
|
+
|
15
|
+
def build(file, options = {})
|
16
|
+
config = Vx::Builder::BuildConfiguration.from_yaml(file)
|
17
|
+
matrix = Vx::Builder.matrix config
|
18
|
+
options[:task] ||= create(:task)
|
19
|
+
script = Vx::Builder.script(options[:task], matrix.build.first)
|
20
|
+
OpenStruct.new script: script, matrix: matrix
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should succesfuly run lang/rust", real: true do
|
24
|
+
file = {"language" => "rust"}.to_yaml
|
25
|
+
task = create(
|
26
|
+
:task,
|
27
|
+
sha: "HEAD",
|
28
|
+
branch: "lang/rust"
|
29
|
+
)
|
30
|
+
|
31
|
+
b = build(file, task: task)
|
32
|
+
Dir.chdir(path) do
|
33
|
+
File.open("script.sh", "w") do |io|
|
34
|
+
io.write "set -e\n"
|
35
|
+
io.write b.script.to_before_script
|
36
|
+
io.write b.script.to_script
|
37
|
+
end
|
38
|
+
system("env", "-", "USER=$USER", "HOME=#{path}", "bash", "script.sh" )
|
39
|
+
expect($?.to_i).to eq 0
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vx-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Galinsky
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- lib/vx/builder/script_builder/nodejs.rb
|
149
149
|
- lib/vx/builder/script_builder/prepare.rb
|
150
150
|
- lib/vx/builder/script_builder/ruby.rb
|
151
|
+
- lib/vx/builder/script_builder/rust.rb
|
151
152
|
- lib/vx/builder/script_builder/scala.rb
|
152
153
|
- lib/vx/builder/script_builder/services.rb
|
153
154
|
- lib/vx/builder/script_builder/timeouts.rb
|
@@ -187,6 +188,7 @@ files:
|
|
187
188
|
- spec/integration/go_spec.rb
|
188
189
|
- spec/integration/nodejs_spec.rb
|
189
190
|
- spec/integration/ruby_spec.rb
|
191
|
+
- spec/integration/rust_spec.rb
|
190
192
|
- spec/lib/builder/build_configuration/cache_spec.rb
|
191
193
|
- spec/lib/builder/build_configuration/deploy/base_spec.rb
|
192
194
|
- spec/lib/builder/build_configuration/deploy/shell_spec.rb
|
@@ -270,6 +272,7 @@ test_files:
|
|
270
272
|
- spec/integration/go_spec.rb
|
271
273
|
- spec/integration/nodejs_spec.rb
|
272
274
|
- spec/integration/ruby_spec.rb
|
275
|
+
- spec/integration/rust_spec.rb
|
273
276
|
- spec/lib/builder/build_configuration/cache_spec.rb
|
274
277
|
- spec/lib/builder/build_configuration/deploy/base_spec.rb
|
275
278
|
- spec/lib/builder/build_configuration/deploy/shell_spec.rb
|