construi 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTNjNzhlY2M0MzIxM2I3YTY1MjA1MGRhZjIxOTlkZWVkN2ZhNDQ3ZA==
4
+ NzNjNDkwNGM3OWI0ZTVhNjgzYzY0ODg5NDkyOGQ2MWNjMGM0ZDE3NA==
5
5
  data.tar.gz: !binary |-
6
- NTZkMDM3MjU4M2M3NmI0YzkxODUxMmIwZTNmZWRkYTAwMWMzYTlkMA==
6
+ ZTZkYmJjMDI3ZDI5YWIzYTQ2ZTlhOTgxYTIyMTJkNTg5MzY0ZTg3ZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTYwNzE3ODVlNGM4MWUzYjUzYjBmN2ZiMzI5Y2NkMGI0MDMwZjQ2M2FlM2Vk
10
- Y2U3YTc3NzUwOWU5MGNlZmFhY2NmNDdhNWY0N2IyNDAwOTk3ODFhY2VjZmRm
11
- NWZjN2QyNDJhNjc4ZGNjNGNkYzljNzgzMjY1M2VkNDNkOTliN2Q=
9
+ YmY5NzhjMzRiN2FkMzMyYmNkYWJkY2UyZWE0NDMzODkwNDJlYTE3NDVjNWNi
10
+ NTBiMzAyNDc4YTlmNDdkMTJiN2NjMjkxNWU1OTg3ZGMxZTkwZGI2Yjc2YTVl
11
+ MzczNjU5MzZlNDhkNjE5NjNmZGE1YTNkNThlODc1OGZiZmQyN2Q=
12
12
  data.tar.gz: !binary |-
13
- MDY2YzY5OGFlZDgzMzRiNWM3YTA0ZTg5YWQzMTRmZDdjYTRlY2Y2MzAzYjRl
14
- MTY4MmMzZTYyNTU5M2UwZmE3OTI1Yjk3ODgyZDhmYjYyYTQ5MGNiYTA0N2E5
15
- NGUwYmViYzcxZmU1YTA5OGNmNTE0Y2Y0NWFhNWVlZDYxZjBkMGE=
13
+ YThjODY0Yjg2ZTMyNGZmYmM2MGNjMGUyNmQ5YmIxYjIyNTQ2ZDAwMDk4ODNk
14
+ YzVhYTQxODExOWY0YjY5NGM4NDM1MDE4YWIxZWI4M2RlNTc1MzEwYjc5NTYy
15
+ Yjc3ZjI5YTE1M2IyMWVlN2JhYjVhNTEyYmRjMDVkNmU4ODM1MmE=
data/construi.yml CHANGED
@@ -1,6 +1,15 @@
1
1
  image: ruby:1.9
2
2
 
3
+ environment:
4
+ - CODECLIMATE_REPO_TOKEN
5
+ - COVERALLS_TOKEN
6
+
3
7
  targets:
4
8
  build:
5
9
  - bundle install --path=vendor/bundle
6
10
  - bundle exec rake spec
11
+
12
+ install:
13
+ - bundle install --path=vendor/bundle
14
+ - bundle exec rake install
15
+
data/lib/construi.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'construi/config'
2
2
  require 'construi/container'
3
3
  require 'construi/image'
4
+ require 'construi/version'
4
5
 
5
6
  require 'docker'
6
7
  require 'yaml'
@@ -13,6 +14,8 @@ module Construi
13
14
  end
14
15
 
15
16
  def run(targets)
17
+ puts "Construi version: #{Construi::VERSION}"
18
+
16
19
  docker_host = ENV['DOCKER_HOST']
17
20
  Docker.url = docker_host unless docker_host.nil?
18
21
 
@@ -29,7 +32,7 @@ module Construi
29
32
 
30
33
  final_image = commands.reduce(IntermediateImage.seed(initial_image)) do |image, command|
31
34
  puts "Running command: #{command}"
32
- image.run(command)
35
+ image.run(command, @config.env)
33
36
  end
34
37
 
35
38
  final_image.delete
@@ -18,6 +18,18 @@ module Construi
18
18
  @yaml['image']
19
19
  end
20
20
 
21
+ def env
22
+ @yaml['environment'].reduce([]) do |acc, e|
23
+ key = e.partition('=').first
24
+ value = e.partition('=').last
25
+
26
+ value = ENV[key] if value.empty?
27
+
28
+ acc << "#{key}=#{value}" unless value.nil? or value.empty?
29
+ acc
30
+ end
31
+ end
32
+
21
33
  def target(target)
22
34
  Target.new(@yaml['targets'][target])
23
35
  end
@@ -34,10 +34,11 @@ module Construi
34
34
  commit
35
35
  end
36
36
 
37
- def self.create(image, cmd)
37
+ def self.create(image, cmd, env)
38
38
  wrap Docker::Container.create(
39
39
  'Cmd' => cmd.split,
40
40
  'Image' => image.id,
41
+ 'Env' => env.to_json,
41
42
  'Tty' => false,
42
43
  'WorkingDir' => '/var/workspace',
43
44
  'HostConfig' => { 'Binds' => ["#{Dir.pwd}:/var/workspace"] })
@@ -47,15 +48,15 @@ module Construi
47
48
  new container
48
49
  end
49
50
 
50
- def self.use(image, cmd)
51
- container = create(image, cmd)
51
+ def self.use(image, cmd, env)
52
+ container = create(image, cmd, env)
52
53
  yield container
53
54
  ensure
54
55
  container.delete unless container.nil?
55
56
  end
56
57
 
57
- def self.run(image, cmd)
58
- use(image, cmd, &:run)
58
+ def self.run(image, cmd, env)
59
+ use(image, cmd, env, &:run)
59
60
  end
60
61
 
61
62
  end
@@ -21,8 +21,8 @@ module Construi
21
21
  @image.info['RepoTags'] != '<none>:<none>'
22
22
  end
23
23
 
24
- def run(cmd)
25
- Container.run(self, cmd)
24
+ def run(cmd, env)
25
+ Container.run(self, cmd, env)
26
26
  end
27
27
 
28
28
  def self.create(image)
@@ -50,8 +50,8 @@ module Construi
50
50
  @image = image
51
51
  end
52
52
 
53
- def run(cmd)
54
- map { |i| i.run(cmd) }
53
+ def run(cmd, env)
54
+ map { |i| i.run(cmd, env) }
55
55
  end
56
56
 
57
57
  def map
@@ -1,3 +1,3 @@
1
1
  module Construi
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: construi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - lstephen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-05 00:00:00.000000000 Z
11
+ date: 2015-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docker-api