bento-ya 1.1.2 → 1.3.0

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
  SHA256:
3
- metadata.gz: 7872edc96d6dc537bece121af04e66cb7adfc73efc917f9dca38163ad82d3825
4
- data.tar.gz: 709164d7132759335424bb7da48a956f0d2d4f361a0128ce13ff3eaf719774ce
3
+ metadata.gz: 281906c67ee3bd9713f00cd4c41c57319cf8125bda545c02ea6e53be1b03f52e
4
+ data.tar.gz: 6f364a93b9c5041dcabb5aa54f2c9132ee870e239aeb736176ccf7eae3d54b36
5
5
  SHA512:
6
- metadata.gz: 2b10638662ceaa2ac2e8ab38282a26d406b8eb9a224cfc9ef7fe292544c550a8afeb52835a84032dda3a471d8cabb9c9acd52e8abbf37ed2045b3018a428c788
7
- data.tar.gz: f070d593e1f415169d5cd3c972cecdb8e52714acf1e20a575f61e9cc01ff07f562f044c79322f83e0fca9639efd10490067050d0c81ca6216acad137eb39e2c0
6
+ metadata.gz: b8b397d611d9c398dddc9fb5d51b351d79c952e24cebff941b2441ab00a98d18819284b8a0f636170d8be9c1b51767a8532f966cc340922a9374d48cd18a10b7
7
+ data.tar.gz: 5ad41b9e47b809699c181073111b890ebbe0e955e0e290129d748e407147f8687849fd73026555f6c78892bc71b03ebb3530155494c076d8b73eed5e945f2c68
data/bin/bento CHANGED
@@ -1,17 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
- # -*- encoding: utf-8 -*-
3
-
4
2
  Signal.trap("INT") { exit 1 }
5
3
 
6
4
  $stdout.sync = true
7
5
  $stderr.sync = true
8
6
 
9
- $LOAD_PATH.unshift File.join(File.dirname(__FILE__), %w{.. lib})
7
+ $LOAD_PATH.unshift File.join(__dir__, %w{.. lib})
10
8
  require "bento/cli"
11
9
 
12
10
  begin
13
11
  Runner.new(Options.parse(ARGV)).start
14
12
  rescue => ex
15
- $stderr.puts ">>> #{ex.message}"
16
- exit(($? && $?.exitstatus) || 99)
13
+ warn ">>> #{ex.message}"
14
+ exit(($CHILD_STATUS && $CHILD_STATUS.exitstatus) || 99)
17
15
  end
@@ -7,7 +7,7 @@ class BuildRunner
7
7
  include Common
8
8
  include PackerExec
9
9
 
10
- attr_reader :template_files, :config, :dry_run, :debug, :only, :except, :mirror, :headed,
10
+ attr_reader :template_files, :config, :dry_run, :debug, :only, :except, :mirror, :headed, :single,
11
11
  :override_version, :build_timestamp, :cpus, :mem
12
12
 
13
13
  def initialize(opts)
@@ -19,6 +19,7 @@ class BuildRunner
19
19
  @except = opts.except
20
20
  @mirror = opts.mirror
21
21
  @headed = opts.headed ||= false
22
+ @single = opts.single ||= false
22
23
  @override_version = opts.override_version
23
24
  @build_timestamp = Time.now.gmtime.strftime("%Y%m%d%H%M%S")
24
25
  @cpus = opts.cpus
@@ -38,13 +39,14 @@ class BuildRunner
38
39
  private
39
40
 
40
41
  def build(file)
41
- dir, template = file.split("/")[0], file.split("/")[1]
42
+ dir = file.split("/")[0]
43
+ template = file.split("/")[1]
42
44
  Dir.chdir dir
43
- for_packer_run_with(template) do |md_file, var_file|
45
+ for_packer_run_with(template) do |md_file, _var_file|
44
46
  cmd = packer_build_cmd(template, md_file.path)
45
47
  banner("[#{template}] Building: '#{cmd.join(' ')}'")
46
48
  time = Benchmark.measure do
47
- system(*cmd) || raise("[#{template}] Error building, exited #{$?}")
49
+ system(*cmd) || raise("[#{template}] Error building, exited #{$CHILD_STATUS}")
48
50
  end
49
51
  write_final_metadata(template, time.real.ceil)
50
52
  banner("[#{template}] Finished building in #{duration(time.real)}.")
@@ -67,6 +69,7 @@ class BuildRunner
67
69
  cmd.insert(2, "-var") if mirror
68
70
  cmd.insert(2, "headless=true") unless headed
69
71
  cmd.insert(2, "-var") unless headed
72
+ cmd.insert(2, "-parallel=false") if single
70
73
  cmd.insert(2, "-debug") if debug
71
74
  cmd.insert(0, "echo") if dry_run
72
75
  cmd
@@ -35,7 +35,7 @@ class BuildMetadata
35
35
  end
36
36
 
37
37
  def git_revision
38
- sha = `git rev-parse HEAD`.strip
38
+ `git rev-parse HEAD`.strip
39
39
  end
40
40
 
41
41
  def git_clean?
@@ -61,12 +61,8 @@ class BuildMetadata
61
61
  end
62
62
 
63
63
  def version
64
- if override_version
65
- override_version
66
- else
67
- merged_vars.fetch("version", "#{UNKNOWN}.TIMESTAMP").
68
- rpartition(".").first.concat("#{build_timestamp}")
69
- end
64
+ override_version || merged_vars.fetch("version", "#{UNKNOWN}.TIMESTAMP")
65
+ .rpartition(".").first.concat(build_timestamp.to_s)
70
66
  end
71
67
 
72
68
  def packer_ver
@@ -11,7 +11,7 @@ require "bento/test"
11
11
  require "bento/upload"
12
12
 
13
13
  class Options
14
- NAME = File.basename($0).freeze
14
+ NAME = File.basename($PROGRAM_NAME).freeze
15
15
 
16
16
  def self.parse(args)
17
17
  options = OpenStruct.new
@@ -26,41 +26,42 @@ class Options
26
26
  list : list all templates in project
27
27
  normalize : normalize one or more templates
28
28
  test : test one or more builds with kitchen
29
- upload : upload one or more builds to Atlas and S3
30
- release : release a version of a box on Atlas
31
- revoke : revoke a version of a box on Atlas
32
- delete : delete a version of a box from Atlas
29
+ upload : upload one or more builds to Vagrant Cloud and S3
30
+ release : release a version of a box on Vagrant Cloud
31
+ revoke : revoke a version of a box on Vagrant Cloud
32
+ delete : delete a version of a box from Vagrant Cloud
33
33
  COMMANDS
34
34
  end
35
35
 
36
- platforms_argv_proc = proc { |options|
37
- options.platforms = builds["public"] unless args.empty?
38
- }
36
+ # @tas50: commenting this out since it's unused 11/30/2018
37
+ # platforms_argv_proc = proc { |opts|
38
+ # opts.platforms = builds["public"] unless args.empty?
39
+ # }
39
40
 
40
- templates_argv_proc = proc { |options|
41
- options.template_files = calculate_templates(args) unless args.empty?
41
+ templates_argv_proc = proc { |opts|
42
+ opts.template_files = calculate_templates(args) unless args.empty?
42
43
 
43
- options.template_files.each do |t|
44
- if !File.exists?("#{t}.json")
45
- $stderr.puts "File #{t}.json does not exist for template '#{t}'"
44
+ opts.template_files.each do |t|
45
+ unless File.exist?("#{t}.json")
46
+ warn "File #{t}.json does not exist for template '#{t}'"
46
47
  exit(1)
47
48
  end
48
49
  end
49
50
  }
50
51
 
51
- box_version_argv_proc = proc { |options|
52
- options.box = ARGV[0]
53
- options.version = ARGV[1]
52
+ box_version_argv_proc = proc { |opts|
53
+ opts.box = ARGV[0]
54
+ opts.version = ARGV[1]
54
55
  }
55
56
 
56
- md_json_argv_proc = proc { |options|
57
- options.md_json = ARGV[0]
57
+ md_json_argv_proc = proc { |opts|
58
+ opts.md_json = ARGV[0]
58
59
  }
59
60
 
60
61
  subcommand = {
61
62
  help: {
62
63
  parser: OptionParser.new {},
63
- argv: proc { |options|
64
+ argv: proc { |_opts|
64
65
  puts global
65
66
  exit(0)
66
67
  },
@@ -82,11 +83,11 @@ class Options
82
83
  options.debug = opt
83
84
  end
84
85
 
85
- opts.on("-o BUILDS", "--only BUILDS", "Only build some Packer builds") do |opt|
86
+ opts.on("-o BUILDS", "--only BUILDS", "Only build some Packer builds (ex: parallels-iso,virtualbox-iso,vmware-iso)") do |opt|
86
87
  options.only = opt
87
88
  end
88
89
 
89
- opts.on("-e BUILDS", "--except BUILDS", "Build all Packer builds except these") do |opt|
90
+ opts.on("-e BUILDS", "--except BUILDS", "Build all Packer builds except these (ex: parallels-iso,virtualbox-iso,vmware-iso)") do |opt|
90
91
  options.except = opt
91
92
  end
92
93
 
@@ -106,6 +107,10 @@ class Options
106
107
  options.headed = opt
107
108
  end
108
109
 
110
+ opts.on("-S", "--single", "Disable parallelization of Packer builds") do |opt|
111
+ options.single = opt
112
+ end
113
+
109
114
  opts.on("-v VERSION", "--version VERSION", "Override the version set in the template") do |opt|
110
115
  options.override_version = opt
111
116
  end
@@ -143,7 +148,7 @@ class Options
143
148
  options.provisioner = opt
144
149
  end
145
150
  end,
146
- argv: Proc.new {},
151
+ argv: proc {},
147
152
  },
148
153
  upload: {
149
154
  class: UploadRunner,
@@ -187,12 +192,12 @@ class Options
187
192
  end
188
193
 
189
194
  def self.calculate_templates(globs)
190
- Array(globs).
191
- map { |glob| result = Dir.glob(glob); result.empty? ? glob : result }.
192
- flatten.
193
- sort.
194
- delete_if { |file| file =~ /\.(variables||metadata)\.json/ }.
195
- map { |template| template.sub(/\.json$/, "") }
195
+ Array(globs)
196
+ .map { |glob| result = Dir.glob(glob); result.empty? ? glob : result }
197
+ .flatten
198
+ .sort
199
+ .delete_if { |file| file =~ /\.(variables||metadata)\.json/ }
200
+ .map { |template| template.sub(/\.json$/, "") }
196
201
  end
197
202
  end
198
203
 
@@ -202,7 +207,7 @@ class ListRunner
202
207
  attr_reader :templates
203
208
 
204
209
  def initialize(opts)
205
- @templates = opts.templates
210
+ @templates = opts.template_files
206
211
  end
207
212
 
208
213
  def start
@@ -9,6 +9,7 @@ MEGABYTE = 1024.0 * 1024.0
9
9
 
10
10
  module Common
11
11
  def vc_account
12
+ raise "You must set the 'VAGRANT_CLOUD_ORG' and 'VAGRANT_CLOUD_TOKEN' tokens to interact with the Vagrant Cloud!" unless ENV["VAGRANT_CLOUD_ORG"] && ENV["VAGRANT_CLOUD_TOKEN"]
12
13
  VagrantCloud::Account.new(ENV["VAGRANT_CLOUD_ORG"], ENV["VAGRANT_CLOUD_TOKEN"])
13
14
  end
14
15
 
@@ -32,7 +33,7 @@ module Common
32
33
  end
33
34
 
34
35
  def box_metadata(metadata_file)
35
- metadata = Hash.new
36
+ metadata = {}
36
37
  file = File.read(metadata_file)
37
38
  json = JSON.parse(file)
38
39
 
@@ -41,7 +42,7 @@ module Common
41
42
  metadata["version"] = json["version"]
42
43
  metadata["box_basename"] = json["box_basename"]
43
44
  metadata["tools"] = json["tools"]
44
- metadata["providers"] = Hash.new
45
+ metadata["providers"] = {}
45
46
  json["providers"].each do |provider|
46
47
  metadata["providers"][provider["name"]] = provider.reject { |k, _| k == "name" }
47
48
  end
@@ -49,11 +50,7 @@ module Common
49
50
  end
50
51
 
51
52
  def metadata_files
52
- @metadata_files ||= compute_metadata_files
53
- end
54
-
55
- def compute_metadata_files
56
- `ls builds/*.json`.split("\n")
53
+ @metadata_files ||= Dir.glob("builds/*.json")
57
54
  end
58
55
 
59
56
  def builds_yml
@@ -91,7 +88,7 @@ module Common
91
88
  proprietary_os_list.any? { |p| boxname.include?(p) }
92
89
  end
93
90
 
94
- def os_x?
91
+ def macos?
95
92
  !!(RUBY_PLATFORM =~ /darwin/)
96
93
  end
97
94
 
@@ -18,13 +18,14 @@ class NormalizeRunner
18
18
  templates.each { |t| puts "- #{t}" }
19
19
  time = Benchmark.measure do
20
20
  templates.each do |file|
21
- dir, template = file.split("/")[0], file.split("/")[1]
21
+ dir = file.split("/")[0]
22
+ template = file.split("/")[1]
22
23
  Dir.chdir dir
23
24
  validate(template)
24
25
  Dir.chdir("..")
25
26
  end
26
27
  end
27
- if !@modified.empty?
28
+ unless @modified.empty?
28
29
  info("")
29
30
  info("The following templates were modified:")
30
31
  @modified.sort.each { |template| info(" * #{template}") }
@@ -44,7 +45,8 @@ class NormalizeRunner
44
45
  banner("[#{template}] Fixing")
45
46
  original_checksum = checksum(file)
46
47
  output = `packer fix #{file}`
47
- raise "[#{template}] Error fixing, exited #{$?}" if $?.exitstatus != 0
48
+ raise "[#{template}] Error fixing, exited #{$CHILD_STATUS}" if $CHILD_STATUS.exitstatus != 0
49
+
48
50
  # preserve ampersands in shell commands,
49
51
  # see: https://github.com/mitchellh/packer/issues/784
50
52
  output.gsub!("\\u0026", "&")
@@ -76,7 +78,7 @@ class NormalizeRunner
76
78
  banner("[#{template}] DEBUG: md_file(#{md_file.path}) is:")
77
79
  puts IO.read(md_file.path)
78
80
  end
79
- system(*cmd) || raise( "[#{template}] Error validating, exited #{$?}")
81
+ system(*cmd) || raise("[#{template}] Error validating, exited #{$CHILD_STATUS}")
80
82
  end
81
83
  end
82
84
  end
@@ -1,4 +1,3 @@
1
-
2
1
  module PackerExec
3
2
  def for_packer_run_with(template)
4
3
  Tempfile.open("#{template}-metadata.json") do |md_file|
@@ -56,7 +56,7 @@ class ProviderMetadata
56
56
  end
57
57
 
58
58
  def ver_vmware
59
- if os_x?
59
+ if macos?
60
60
  path = File.join('/Applications/VMware\ Fusion.app/Contents/Library')
61
61
  fusion_cmd = File.join(path, "vmware-vmx -v")
62
62
  cmd = Mixlib::ShellOut.new(fusion_cmd)
@@ -70,7 +70,7 @@ class ProviderMetadata
70
70
  end
71
71
 
72
72
  def ver_parallels
73
- raise "Platform is not macOS / OS X, exiting..." unless os_x?
73
+ raise "Platform is not macOS, exiting..." unless macos?
74
74
  cmd = Mixlib::ShellOut.new("prlctl --version")
75
75
  cmd.run_command
76
76
  cmd.stdout.split(" ")[2]
@@ -53,7 +53,7 @@ class TestRunner
53
53
  File.open(file, "w") { |f| f.puts erb }
54
54
  end
55
55
 
56
- test = Mixlib::ShellOut.new("kitchen test", :timeout => 900, live_stream: STDOUT)
56
+ test = Mixlib::ShellOut.new("kitchen test", timeout: 900, live_stream: STDOUT)
57
57
  test.run_command
58
58
  test.error!
59
59
  end
@@ -21,14 +21,15 @@ class UploadRunner
21
21
  end
22
22
 
23
23
  def upload(md_file)
24
+ puts "Attempting to upload #{md_file}"
24
25
  md = box_metadata(md_file)
25
26
  box_desc = "a bento box for #{md['name']}"
26
- box = vc_account.ensure_box(md["name"], box_desc, private_box?(md["name"]))
27
+ box = vc_account.ensure_box(md["name"], {short_description: box_desc, is_private: private_box?(md["name"])})
27
28
  box_ver = box.ensure_version(md["version"], File.read(md_file))
28
29
 
29
- if builds_yml["slugs"].values.include?(box.name)
30
+ if builds_yml["slugs"].value?(box.name)
30
31
  slug_desc = "a bento box for #{builds_yml['slugs'].key(box.name)}"
31
- slug = vc_account.ensure_box(builds_yml["slugs"].key(box.name), slug_desc, false)
32
+ slug = vc_account.ensure_box(builds_yml["slugs"].key(box.name), {short_description: slug_desc, is_private: false})
32
33
  slug_ver = slug.ensure_version(md["version"], File.read(md_file))
33
34
  end
34
35
 
@@ -36,12 +37,13 @@ class UploadRunner
36
37
  provider = box_ver.ensure_provider(k, nil)
37
38
  banner("Uploading #{box.name}/#{box_ver.version}/#{provider.name}...")
38
39
  provider.upload_file("builds/#{v['file']}")
39
- banner("#{provider.download_url}")
40
- next unless builds_yml["slugs"].values.include?(box.name)
40
+ banner(provider.download_url.to_s)
41
+ next unless builds_yml["slugs"].value?(box.name)
42
+
41
43
  slug_provider = slug_ver.ensure_provider(k, nil)
42
44
  banner("Uploading #{slug.name}/#{slug_ver.version}/#{slug_provider.name}...")
43
45
  slug_provider.upload_file("builds/#{v['file']}")
44
- banner("#{slug_provider.download_url}")
46
+ banner(slug_provider.download_url.to_s)
45
47
  end
46
48
  end
47
49
  end
@@ -1,3 +1,3 @@
1
1
  module Bento
2
- VERSION = "1.1.2"
2
+ VERSION = "1.3.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bento-ya
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Thomas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-14 00:00:00.000000000 Z
11
+ date: 2019-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout
@@ -30,30 +30,23 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: '2.0'
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: '1.0'
40
+ version: '2.0'
41
41
  description: bento-ya builds bento boxes
42
42
  email:
43
- - sthomas@chef.io
43
+ - seth.g.thomas@gmail.com
44
44
  executables:
45
45
  - bento
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
- - ".gitignore"
50
- - ".travis.yml"
51
- - CHANGELOG.md
52
- - Gemfile
53
49
  - LICENSE
54
- - README.md
55
- - Rakefile
56
- - bento-ya.gemspec
57
50
  - bin/bento
58
51
  - lib/bento.rb
59
52
  - lib/bento/build.rb
@@ -71,7 +64,7 @@ files:
71
64
  - lib/bento/version.rb
72
65
  - templates/bootstrap.sh.erb
73
66
  - templates/kitchen.yml.erb
74
- homepage: https://github.com/cheeseplus/bento-ya
67
+ homepage: https://github.com/chef/bento-ya
75
68
  licenses:
76
69
  - Apache-2.0
77
70
  metadata: {}
@@ -90,8 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
83
  - !ruby/object:Gem::Version
91
84
  version: '0'
92
85
  requirements: []
93
- rubyforge_project:
94
- rubygems_version: 2.7.6
86
+ rubygems_version: 3.0.3
95
87
  signing_key:
96
88
  specification_version: 4
97
89
  summary: A RubyGem for managing chef/bento builds
data/.gitignore DELETED
@@ -1,50 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /spec/examples.txt
9
- /test/tmp/
10
- /test/version_tmp/
11
- /tmp/
12
-
13
- # Used by dotenv library to load environment variables.
14
- # .env
15
-
16
- ## Specific to RubyMotion:
17
- .dat*
18
- .repl_history
19
- build/
20
- *.bridgesupport
21
- build-iPhoneOS/
22
- build-iPhoneSimulator/
23
-
24
- ## Specific to RubyMotion (use of CocoaPods):
25
- #
26
- # We recommend against adding the Pods directory to your .gitignore. However
27
- # you should judge for yourself, the pros and cons are mentioned at:
28
- # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
29
- #
30
- # vendor/Pods/
31
-
32
- ## Documentation cache and generated files:
33
- /.yardoc/
34
- /_yardoc/
35
- /doc/
36
- /rdoc/
37
-
38
- ## Environment normalization:
39
- /.bundle/
40
- /vendor/bundle
41
- /lib/bundler/man/
42
-
43
- # for a library or gem, you might want to ignore these files since the code is
44
- # intended to run in multiple environments; otherwise, check them in:
45
- Gemfile.lock
46
- # .ruby-version
47
- # .ruby-gemset
48
-
49
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
50
- .rvmrc
@@ -1,19 +0,0 @@
1
- sudo: false
2
- dist: trusty
3
-
4
- language: ruby
5
- cache: bundler
6
- rvm:
7
- - 2.4.1
8
- - ruby-head
9
-
10
- matrix:
11
- allow_failures:
12
- - rvm: ruby-head
13
-
14
- branches:
15
- only:
16
- - master
17
-
18
- script:
19
- - bundle exec chefstyle
@@ -1,132 +0,0 @@
1
- # Change Log
2
-
3
- ## [v1.1.2](https://github.com/cheeseplus/bento-ya/tree/v1.1.2) (2018-08-14)
4
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v1.1.1...v1.1.2)
5
-
6
- **Merged pull requests:**
7
-
8
- - Alter share\_disabled regex to catch all BSDs [\#41](https://github.com/cheeseplus/bento-ya/pull/41) ([cheeseplus](https://github.com/cheeseplus))
9
-
10
- ## [v1.1.1](https://github.com/cheeseplus/bento-ya/tree/v1.1.1) (2018-08-13)
11
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v1.1.0...v1.1.1)
12
-
13
- **Closed issues:**
14
-
15
- - disable synced\_folder for Hyper-V provider [\#37](https://github.com/cheeseplus/bento-ya/issues/37)
16
- - use full paths for `box\_url` in kitchen.yml [\#36](https://github.com/cheeseplus/bento-ya/issues/36)
17
-
18
- **Merged pull requests:**
19
-
20
- - This fixes Windows Hyper-V builders [\#39](https://github.com/cheeseplus/bento-ya/pull/39) ([cheeseplus](https://github.com/cheeseplus))
21
-
22
- ## [v1.1.0](https://github.com/cheeseplus/bento-ya/tree/v1.1.0) (2018-01-02)
23
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v1.0.1...v1.1.0)
24
-
25
- ### NEW FEATURE
26
-
27
- * Support for uploading to N and N.N slugs via builds.yml
28
-
29
- ## [v1.0.1](https://github.com/cheeseplus/bento-ya/tree/v1.0.1) (2017-09-14)
30
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v1.0.0...v1.0.1)
31
-
32
- ### BUG FIXES
33
-
34
- * Fix normalize
35
- * Fix release
36
-
37
- ## [v1.0.0](https://github.com/cheeseplus/bento-ya/tree/v1.0.0) (2017-09-05)
38
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.4...v1.0.0)
39
-
40
- ### IMPROVEMENTS
41
-
42
- * Use `vagrant_cloud` gem
43
- * Refactor all Vagrant Cloud related code
44
- * cleanup deps, options, style
45
- * drop remote build support
46
- * add Chefstyle
47
- * configure TravisCI
48
- * moved more things out of bento and into bento-ya
49
- * support for loading `builds.yml`
50
- * support folder re-organzation in bento project
51
-
52
- ### BUG FIXES
53
-
54
- * Fix provider being set incorrectly for VMware builds
55
-
56
- ## [v0.1.4](https://github.com/cheeseplus/bento-ya/tree/v0.1.4) (2017-07-05)
57
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.3...v0.1.4)
58
-
59
- **Merged pull requests:**
60
-
61
- - TravisCI doesn't have vagrant so punt [\#24](https://github.com/cheeseplus/bento-ya/pull/24) ([cheeseplus](https://github.com/cheeseplus))
62
-
63
- ## [v0.1.3](https://github.com/cheeseplus/bento-ya/tree/v0.1.3) (2017-07-05)
64
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.2...v0.1.3)
65
-
66
- **Merged pull requests:**
67
-
68
- - Release 0.1.3 [\#23](https://github.com/cheeseplus/bento-ya/pull/23) ([cheeseplus](https://github.com/cheeseplus))
69
- - Fixing require and attr reader for test [\#22](https://github.com/cheeseplus/bento-ya/pull/22) ([cheeseplus](https://github.com/cheeseplus))
70
-
71
- ## [v0.1.2](https://github.com/cheeseplus/bento-ya/tree/v0.1.2) (2017-07-05)
72
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.1...v0.1.2)
73
-
74
- **Merged pull requests:**
75
-
76
- - Release 0.1.2 [\#21](https://github.com/cheeseplus/bento-ya/pull/21) ([cheeseplus](https://github.com/cheeseplus))
77
- - Cleanup some requires [\#20](https://github.com/cheeseplus/bento-ya/pull/20) ([cheeseplus](https://github.com/cheeseplus))
78
- - Testing of shared folder now default, option inverted [\#18](https://github.com/cheeseplus/bento-ya/pull/18) ([cheeseplus](https://github.com/cheeseplus))
79
- - Fix typo in README.md [\#17](https://github.com/cheeseplus/bento-ya/pull/17) ([ffmike](https://github.com/ffmike))
80
-
81
- ## [v0.1.1](https://github.com/cheeseplus/bento-ya/tree/v0.1.1) (2017-07-03)
82
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.0...v0.1.1)
83
-
84
- **Merged pull requests:**
85
-
86
- - Release 0.1.1 [\#16](https://github.com/cheeseplus/bento-ya/pull/16) ([cheeseplus](https://github.com/cheeseplus))
87
- - Need mixlib-shellout [\#15](https://github.com/cheeseplus/bento-ya/pull/15) ([cheeseplus](https://github.com/cheeseplus))
88
- - Fix renamed method [\#14](https://github.com/cheeseplus/bento-ya/pull/14) ([cheeseplus](https://github.com/cheeseplus))
89
-
90
- ## [v0.1.0](https://github.com/cheeseplus/bento-ya/tree/v0.1.0) (2017-06-30)
91
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.0.3...v0.1.0)
92
-
93
- **Closed issues:**
94
-
95
- - Make CPU and Memory settings flexible [\#10](https://github.com/cheeseplus/bento-ya/issues/10)
96
-
97
- **Merged pull requests:**
98
-
99
- - Release 0.1.0 [\#12](https://github.com/cheeseplus/bento-ya/pull/12) ([cheeseplus](https://github.com/cheeseplus))
100
- - Refactor for Vagrant Cloud [\#11](https://github.com/cheeseplus/bento-ya/pull/11) ([cheeseplus](https://github.com/cheeseplus))
101
-
102
- ## [v0.0.3](https://github.com/cheeseplus/bento-ya/tree/v0.0.3) (2017-02-22)
103
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.0.2...v0.0.3)
104
-
105
- **Merged pull requests:**
106
-
107
- - Release 0.0.3 [\#9](https://github.com/cheeseplus/bento-ya/pull/9) ([cheeseplus](https://github.com/cheeseplus))
108
- - Cleaning up code and fixing normalize [\#8](https://github.com/cheeseplus/bento-ya/pull/8) ([cheeseplus](https://github.com/cheeseplus))
109
-
110
- ## [v0.0.2](https://github.com/cheeseplus/bento-ya/tree/v0.0.2) (2017-02-19)
111
- [Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.0.1...v0.0.2)
112
-
113
- **Closed issues:**
114
-
115
- - bento terminates if prlctl is not available. [\#4](https://github.com/cheeseplus/bento-ya/issues/4)
116
- - Gemspec Homepage Incorrect [\#3](https://github.com/cheeseplus/bento-ya/issues/3)
117
-
118
- **Merged pull requests:**
119
-
120
- - Cutting 0.0.2 [\#7](https://github.com/cheeseplus/bento-ya/pull/7) ([cheeseplus](https://github.com/cheeseplus))
121
- - Fixes \#3 [\#6](https://github.com/cheeseplus/bento-ya/pull/6) ([cheeseplus](https://github.com/cheeseplus))
122
- - deal with executables missing [\#5](https://github.com/cheeseplus/bento-ya/pull/5) ([karcaw](https://github.com/karcaw))
123
-
124
- ## [v0.0.1](https://github.com/cheeseplus/bento-ya/tree/v0.0.1) (2016-12-19)
125
- **Merged pull requests:**
126
-
127
- - Cutting 0.0.1 [\#2](https://github.com/cheeseplus/bento-ya/pull/2) ([cheeseplus](https://github.com/cheeseplus))
128
- - let there be files [\#1](https://github.com/cheeseplus/bento-ya/pull/1) ([cheeseplus](https://github.com/cheeseplus))
129
-
130
-
131
-
132
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile DELETED
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- group :development do
6
- gem "chefstyle"
7
- gem "rake", ">= 10.1.0"
8
- gem "rspec-core", "~> 3.0"
9
- gem "rspec-expectations", "~> 3.0"
10
- gem "rspec-mocks", "~> 3.0"
11
- gem "rspec-collection_matchers", "~> 1.0"
12
- end
data/README.md DELETED
@@ -1,66 +0,0 @@
1
- [![Gem Version](https://badge.fury.io/rb/bento-ya.svg)](http://badge.fury.io/rb/bento-ya) [![Build Status Master](https://travis-ci.org/cheeseplus/bento-ya.svg?branch=master)](https://travis-ci.org/cheeseplus/bento-ya)
2
-
3
- # bento-ya
4
- A RubyGem for managing chef/bento builds
5
-
6
- ## Requirements
7
-
8
- * [Packer](https://www.packer.io/)
9
- * At least one virtualization provider: VirtualBox, VMware Fusion, Parallels Desktop, etc
10
-
11
- ## Quick Start
12
-
13
- Bento-ya is a RubyGem and can be installed with:
14
-
15
- ```
16
- $ gem install bento-ya
17
- ```
18
-
19
- If you use Bundler, you can add `gem "bento-ya"` to your Gemfile and make
20
- sure to run `bundle install`.
21
-
22
- ### Using `bento`
23
-
24
- #### build
25
-
26
- To build multiple templates for all providers (VirtualBox, Fusion, Parallels, etc):
27
-
28
- $ bento build debian-8.6-amd64 debian-8.6-i386
29
-
30
- To build a box for a single provider:
31
-
32
- $ bento build --only=virtualbox-iso debian-8.6-amd64
33
-
34
-
35
- *NOTE*: The following commands rely on the environmental variables
36
- `ATLAS_TOKEN` and `ATLAS_ORG` being correctly set.
37
-
38
- #### upload
39
-
40
- To upload built boxes to [Atlas][atlas].
41
-
42
- $ bento upload
43
-
44
- #### release
45
-
46
- $ bento release debian-8.6 2.3.3
47
-
48
- #### revoke
49
-
50
- $ bento revoke debian-8.6 2.3.3
51
-
52
- #### delete
53
-
54
- $ bento delete debian-8.6 2.3.3
55
-
56
- ## Versioning
57
-
58
- bento-ya aims to adhere to [Semantic Versioning 2.0.0][semver].
59
-
60
- ## License
61
-
62
- Apache License, Version 2.0 (see [LICENSE][license])
63
-
64
- [license]: https://github.com/cheeseplus/bento-ya/blob/master/LICENSE
65
- [semver]: http://semver.org/
66
- [atlas]: https://atlas.hashicorp.com
data/Rakefile DELETED
@@ -1,22 +0,0 @@
1
- require "bundler/gem_tasks"
2
-
3
- begin
4
- require "rspec/core/rake_task"
5
-
6
- RSpec::Core::RakeTask.new do |t|
7
- t.pattern = "spec/**/*_spec.rb"
8
- end
9
- rescue LoadError
10
- desc "rspec is not installed, this task is disabled"
11
- task :spec do
12
- abort "rspec is not installed. `(sudo) gem install rspec` to run unit tests"
13
- end
14
- end
15
-
16
- task :default => :spec
17
-
18
- require "chefstyle"
19
- require "rubocop/rake_task"
20
- RuboCop::RakeTask.new(:style) do |task|
21
- task.options += ["--display-cop-names", "--no-color"]
22
- end
@@ -1,26 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.expand_path("../lib", __FILE__)
3
- require "bento/version"
4
- require "English"
5
-
6
- Gem::Specification.new do |gem|
7
- gem.name = "bento-ya"
8
- gem.version = Bento::VERSION
9
- gem.license = "Apache-2.0"
10
- gem.authors = ["Seth Thomas"]
11
- gem.email = ["sthomas@chef.io"]
12
- gem.description = "bento-ya builds bento boxes"
13
- gem.summary = "A RubyGem for managing chef/bento builds"
14
- gem.homepage = "https://github.com/cheeseplus/bento-ya"
15
-
16
- gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
- gem.bindir = "bin"
18
- gem.executables = %w{bento}
19
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
20
- gem.require_paths = ["lib"]
21
-
22
- gem.required_ruby_version = ">= 2.3.1"
23
-
24
- gem.add_dependency "mixlib-shellout", ">= 2.3.2"
25
- gem.add_dependency "vagrant_cloud", "~> 1.0"
26
- end