construi 0.5.0 → 0.6.0

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 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