omnibus 2.0.2 → 3.0.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 +7 -0
- data/.rubocop.yml +2 -0
- data/.travis.yml +0 -2
- data/CHANGELOG.md +26 -6
- data/Gemfile +7 -0
- data/Guardfile +10 -0
- data/README.md +103 -160
- data/Rakefile +6 -1
- data/docs/Building on OSX.md +66 -0
- data/docs/omnibus-build-cache.md +75 -0
- data/lib/omnibus.rb +9 -13
- data/lib/omnibus/artifact.rb +1 -13
- data/lib/omnibus/assets/README-logo.png +0 -0
- data/lib/omnibus/assets/logo.psd +0 -0
- data/lib/omnibus/builder.rb +1 -0
- data/lib/omnibus/cli/application.rb +17 -4
- data/lib/omnibus/cli/build.rb +6 -4
- data/lib/omnibus/config.rb +33 -0
- data/lib/omnibus/exceptions.rb +20 -14
- data/lib/omnibus/health_check.rb +2 -0
- data/lib/omnibus/install_path_cache.rb +106 -0
- data/lib/omnibus/library.rb +18 -1
- data/lib/omnibus/packagers/base.rb +228 -0
- data/lib/omnibus/packagers/mac_dmg.rb +215 -0
- data/lib/omnibus/packagers/mac_pkg.rb +129 -253
- data/lib/omnibus/project.rb +89 -95
- data/lib/omnibus/s3_cacher.rb +4 -7
- data/lib/omnibus/software.rb +47 -83
- data/lib/omnibus/sugar.rb +49 -0
- data/lib/omnibus/templates/.kitchen.yml.erb +3 -0
- data/lib/omnibus/templates/Berksfile.erb +4 -0
- data/lib/omnibus/templates/Gemfile.erb +1 -1
- data/lib/omnibus/templates/mac_dmg/background.png +0 -0
- data/lib/omnibus/templates/mac_dmg/icon.png +0 -0
- data/lib/omnibus/templates/mac_pkg/background.png +0 -0
- data/lib/omnibus/templates/mac_pkg/license.html.erb +1 -0
- data/lib/omnibus/templates/mac_pkg/welcome.html.erb +9 -0
- data/lib/omnibus/templates/omnibus.rb.example.erb +31 -4
- data/lib/omnibus/version.rb +1 -1
- data/omnibus.gemspec +5 -4
- data/spec/fixtures/sample/files/mac_dmg/Resources/background.png +0 -0
- data/spec/fixtures/sample/files/mac_dmg/Resources/icon.png +0 -0
- data/spec/fixtures/sample/files/mac_pkg/Resources/background.png +0 -0
- data/spec/fixtures/sample/files/mac_pkg/Resources/license.html +1 -0
- data/spec/fixtures/sample/files/mac_pkg/Resources/welcome.html +9 -0
- data/{functional/fixtures/mac_pkg/package-scripts/functional-test-project → spec/fixtures/sample/package-scripts/sample}/postinstall +0 -0
- data/spec/functional/packagers/mac_spec.rb +74 -0
- data/spec/spec_helper.rb +14 -3
- data/spec/sugar_spec.rb +20 -0
- data/spec/{artifact_spec.rb → unit/artifact_spec.rb} +2 -3
- data/spec/{build_version_spec.rb → unit/build_version_spec.rb} +0 -0
- data/spec/{config_spec.rb → unit/config_spec.rb} +4 -0
- data/spec/{fetchers → unit/fetchers}/git_fetcher_spec.rb +0 -0
- data/spec/{fetchers → unit/fetchers}/net_fetcher_spec.rb +0 -0
- data/spec/unit/install_path_cache_spec.rb +175 -0
- data/spec/unit/library_spec.rb +67 -0
- data/spec/{omnibus_spec.rb → unit/omnibus_spec.rb} +0 -0
- data/spec/{overrides_spec.rb → unit/overrides_spec.rb} +0 -0
- data/spec/{package_release_spec.rb → unit/package_release_spec.rb} +0 -0
- data/spec/unit/packagers/base_spec.rb +221 -0
- data/spec/unit/packagers/mac_pkg_spec.rb +163 -0
- data/spec/{project_spec.rb → unit/project_spec.rb} +0 -14
- data/spec/{s3_cacher_spec.rb → unit/s3_cacher_spec.rb} +0 -0
- data/spec/{software_spec.rb → unit/software_spec.rb} +0 -1
- metadata +122 -103
- data/functional/fixtures/mac_pkg/files/mac_pkg/Resources/background.png +0 -0
- data/functional/fixtures/mac_pkg/files/mac_pkg/Resources/license.html +0 -1
- data/functional/fixtures/mac_pkg/files/mac_pkg/Resources/welcome.html +0 -1
- data/functional/packagers/mac_pkg_spec.rb +0 -72
- data/lib/omnibus/clean_tasks.rb +0 -28
- data/spec/packagers/mac_pkg_spec.rb +0 -262
data/lib/omnibus/s3_cacher.rb
CHANGED
@@ -122,13 +122,10 @@ module Omnibus
|
|
122
122
|
|
123
123
|
def bucket
|
124
124
|
@bucket ||= begin
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
@client.connection.put('/')
|
130
|
-
b
|
131
|
-
end
|
125
|
+
b = UberS3::Bucket.new(@client, @client.bucket)
|
126
|
+
# creating the bucket is idempotent, make sure it's created:
|
127
|
+
@client.connection.put('/')
|
128
|
+
b
|
132
129
|
end
|
133
130
|
end
|
134
131
|
end
|
data/lib/omnibus/software.rb
CHANGED
@@ -26,13 +26,11 @@ require 'omnibus/fetcher'
|
|
26
26
|
require 'omnibus/builder'
|
27
27
|
require 'omnibus/config'
|
28
28
|
|
29
|
-
require '
|
29
|
+
require 'fileutils'
|
30
30
|
|
31
31
|
module Omnibus
|
32
32
|
# Omnibus software DSL reader
|
33
33
|
class Software
|
34
|
-
include Rake::DSL
|
35
|
-
|
36
34
|
NULL_ARG = Object.new
|
37
35
|
UNINITIALIZED = Object.new
|
38
36
|
|
@@ -55,6 +53,8 @@ module Omnibus
|
|
55
53
|
|
56
54
|
attr_reader :whitelist_files
|
57
55
|
|
56
|
+
attr_reader :source_config
|
57
|
+
|
58
58
|
def self.load(filename, project, repo_overrides = {})
|
59
59
|
new(IO.read(filename), filename, project, repo_overrides)
|
60
60
|
end
|
@@ -91,8 +91,6 @@ module Omnibus
|
|
91
91
|
@dependencies = []
|
92
92
|
@whitelist_files = []
|
93
93
|
instance_eval(io, filename, 0)
|
94
|
-
|
95
|
-
render_tasks
|
96
94
|
end
|
97
95
|
|
98
96
|
# Retrieves the override_version
|
@@ -286,6 +284,7 @@ module Omnibus
|
|
286
284
|
|
287
285
|
# @return [Boolean]
|
288
286
|
def always_build?
|
287
|
+
return true if project.dirty_cache
|
289
288
|
# Should do !!(@always_build)
|
290
289
|
@always_build
|
291
290
|
end
|
@@ -359,18 +358,6 @@ module Omnibus
|
|
359
358
|
@relative_path ? "#{source_dir}/#{@relative_path}" : "#{source_dir}/#{@name}"
|
360
359
|
end
|
361
360
|
|
362
|
-
# @todo all the *_file methods should be next to each other for
|
363
|
-
# better logical grouping
|
364
|
-
def manifest_file
|
365
|
-
manifest_file_from_name(@name)
|
366
|
-
end
|
367
|
-
|
368
|
-
# @todo Seems like this should be a private method, since it's
|
369
|
-
# just used internally
|
370
|
-
def manifest_file_from_name(software_name)
|
371
|
-
"#{build_dir}/#{software_name}.manifest"
|
372
|
-
end
|
373
|
-
|
374
361
|
# The name of the sentinel file that marks the most recent fetch
|
375
362
|
# time of the software
|
376
363
|
#
|
@@ -431,6 +418,42 @@ module Omnibus
|
|
431
418
|
OHAI.kernel['machine'] =~ /sun/ ? 'sparc' : 'intel'
|
432
419
|
end
|
433
420
|
|
421
|
+
# Actually build the software package
|
422
|
+
def build_me
|
423
|
+
# Fetch the source
|
424
|
+
fetcher = fetch_me
|
425
|
+
|
426
|
+
# Build if we need to
|
427
|
+
if always_build?
|
428
|
+
execute_build(fetcher)
|
429
|
+
else
|
430
|
+
if Omnibus::InstallPathCache.new(install_dir, self).restore
|
431
|
+
true
|
432
|
+
else
|
433
|
+
execute_build(fetcher)
|
434
|
+
end
|
435
|
+
end
|
436
|
+
true
|
437
|
+
end
|
438
|
+
|
439
|
+
# Fetch the software
|
440
|
+
def fetch_me
|
441
|
+
# Create the directories we need
|
442
|
+
[build_dir, source_dir, cache_dir, project_dir].each do |dir|
|
443
|
+
FileUtils.mkdir_p dir
|
444
|
+
end
|
445
|
+
|
446
|
+
fetcher = Fetcher.for(self)
|
447
|
+
|
448
|
+
if !File.exist?(fetch_file) || fetcher.fetch_required?
|
449
|
+
# force build to run if we need to do an updated fetch
|
450
|
+
fetcher.fetch
|
451
|
+
touch fetch_file
|
452
|
+
end
|
453
|
+
|
454
|
+
fetcher
|
455
|
+
end
|
456
|
+
|
434
457
|
private
|
435
458
|
|
436
459
|
# Apply overrides in the @overrides hash that mask instance variables
|
@@ -457,74 +480,15 @@ module Omnibus
|
|
457
480
|
def execute_build(fetcher)
|
458
481
|
fetcher.clean
|
459
482
|
@builder.build
|
460
|
-
|
483
|
+
puts "[software:#{name}] caching build"
|
484
|
+
Omnibus::InstallPathCache.new(install_dir, self).incremental
|
485
|
+
puts "[software:#{name}] has dirtied the cache"
|
486
|
+
project.dirty_cache = true
|
461
487
|
end
|
462
488
|
|
463
|
-
def
|
464
|
-
|
465
|
-
|
466
|
-
fetcher = Fetcher.for(self)
|
467
|
-
|
468
|
-
#
|
469
|
-
# set up inter-project dependencies
|
470
|
-
#
|
471
|
-
(@dependencies - [@name]).uniq.each do |dep|
|
472
|
-
task @name => dep
|
473
|
-
file manifest_file => manifest_file_from_name(dep)
|
474
|
-
end
|
475
|
-
|
476
|
-
directory source_dir
|
477
|
-
directory cache_dir
|
478
|
-
directory build_dir
|
479
|
-
directory project_dir
|
480
|
-
namespace @name do
|
481
|
-
task fetch: [build_dir, source_dir, cache_dir, project_dir] do
|
482
|
-
if !File.exist?(fetch_file) || fetcher.fetch_required?
|
483
|
-
# force build to run if we need to do an updated fetch
|
484
|
-
fetcher.fetch
|
485
|
-
touch fetch_file
|
486
|
-
end
|
487
|
-
end
|
488
|
-
|
489
|
-
task build: :fetch do
|
490
|
-
if !always_build? && uptodate?(manifest_file, [fetch_file])
|
491
|
-
# if any direct deps have been built for any reason, we will need to
|
492
|
-
# clean/build ourselves
|
493
|
-
(@dependencies - [@name]).uniq.each do |dep|
|
494
|
-
unless uptodate?(manifest_file, [manifest_file_from_name(dep)])
|
495
|
-
execute_build(fetcher)
|
496
|
-
break
|
497
|
-
end
|
498
|
-
end
|
499
|
-
|
500
|
-
else
|
501
|
-
# if fetch has occurred, or the component is configured to
|
502
|
-
# always build, do a clean and build.
|
503
|
-
execute_build(fetcher)
|
504
|
-
end
|
505
|
-
end
|
506
|
-
end
|
507
|
-
|
508
|
-
#
|
509
|
-
# make the manifest file dependent on the latest file in the
|
510
|
-
# source tree in order to shrink the multi-thousand-node
|
511
|
-
# dependency graph that Rake was generating
|
512
|
-
#
|
513
|
-
latest_file = FileList["#{project_dir}/**/*"].sort do |a, b|
|
514
|
-
File.mtime(a) <=> File.mtime(b)
|
515
|
-
end.last
|
516
|
-
|
517
|
-
file manifest_file => (file latest_file)
|
518
|
-
|
519
|
-
file fetch_file => "#{name}:fetch"
|
520
|
-
file manifest_file => "#{name}:build"
|
521
|
-
|
522
|
-
file fetch_file => (file @source_config)
|
523
|
-
file manifest_file => (file fetch_file)
|
524
|
-
|
525
|
-
desc "fetch and build #{@name} for #{@project.name}"
|
526
|
-
task @name => manifest_file
|
527
|
-
end
|
489
|
+
def touch(file)
|
490
|
+
File.open(file, 'w') do |f|
|
491
|
+
f.print ''
|
528
492
|
end
|
529
493
|
end
|
530
494
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2014 Chef Software, Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'chef/sugar/architecture'
|
18
|
+
require 'chef/sugar/cloud'
|
19
|
+
# NOTE: We cannot include the constraints library because of the conflicting
|
20
|
+
# +version+ attribute would screw things up. You can still use the
|
21
|
+
# +Chef::Sugar::Constraint.version('1.2.3') for comparing versions.
|
22
|
+
#
|
23
|
+
# require 'chef/sugar/constraints'
|
24
|
+
require 'chef/sugar/ip'
|
25
|
+
require 'chef/sugar/platform'
|
26
|
+
require 'chef/sugar/platform_family'
|
27
|
+
require 'chef/sugar/ruby'
|
28
|
+
require 'chef/sugar/shell'
|
29
|
+
require 'chef/sugar/vagrant'
|
30
|
+
|
31
|
+
require 'omnibus/project'
|
32
|
+
|
33
|
+
module Omnibus
|
34
|
+
class Project
|
35
|
+
private
|
36
|
+
|
37
|
+
# This method is used by Chef Sugar to easily add the DSL. By mimicing
|
38
|
+
# Chef's +node+ object, we can easily include the existing DSL into
|
39
|
+
# Omnibus project as if it were Chef. Otherwise, we would need to rewrite
|
40
|
+
# all the DSL methods.
|
41
|
+
def node
|
42
|
+
OHAI
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Include everything in Omnibus
|
48
|
+
Omnibus::Project.send(:include, Chef::Sugar::DSL)
|
49
|
+
Omnibus::Software.send(:include, Chef::Sugar::DSL)
|
@@ -1,5 +1,9 @@
|
|
1
1
|
source 'https://api.berkshelf.com'
|
2
2
|
|
3
|
+
# The apt cookbook is required to bring the apt cache up-to-date on Ubuntu
|
4
|
+
# systems, since the cache can become stale on older boxes.
|
5
|
+
cookbook 'apt', '~> 2.0'
|
6
|
+
|
3
7
|
cookbook 'omnibus'
|
4
8
|
|
5
9
|
# Uncomment to use the latest version of the Omnibus cookbook from GitHub
|
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
|
|
4
4
|
gem 'berkshelf', '~> 3.0.0.beta'
|
5
5
|
|
6
6
|
# Install omnibus software
|
7
|
-
gem 'omnibus', '~>
|
7
|
+
gem 'omnibus', '~> <%= Omnibus::VERSION.split('.')[0...-1].join('.') %>'
|
8
8
|
gem 'omnibus-software', github: 'opscode/omnibus-software'
|
9
9
|
|
10
10
|
# Use Test Kitchen with Vagrant for convering the build environment
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
All Rights Reserved
|
@@ -0,0 +1,9 @@
|
|
1
|
+
This will install <%= config[:name] %> on your Mac.
|
2
|
+
|
3
|
+
--------------------------------------------------
|
4
|
+
|
5
|
+
This is a basic welcome message that is generated for every Omnibus project. You should customize this message by editing the file at files/mac_pkg/welcome.html.
|
6
|
+
|
7
|
+
If you are not the developer of <%= config[:name] %>, the presence of this message is likely a bug and should be reported to the creator.
|
8
|
+
|
9
|
+
Thank you for choosing Omnibus! Have a fantastic day!
|
@@ -1,6 +1,33 @@
|
|
1
|
-
#
|
2
|
-
#
|
3
|
-
#
|
1
|
+
#
|
2
|
+
# This file is used to configure the <%= config[:name] %> project. It contains
|
3
|
+
# come minimal configuration examples for working with Omnibus. For a full list
|
4
|
+
# of configurable options, please see the documentation for +omnibus/config.rb+.
|
5
|
+
#
|
6
|
+
|
7
|
+
# Build internally
|
8
|
+
# ------------------------------
|
9
|
+
# By default, Omnibus uses system folders (like +/var+ and +/opt+) to build and
|
10
|
+
# cache compontents. If you would to build everything internally, you can
|
11
|
+
# uncomment the following options. This will prevent the need for root
|
12
|
+
# permissions in most cases. You will also need to update the <%= config[:name] %>
|
13
|
+
# project configuration to build at +./local/omnibus/build+ instead of
|
14
|
+
# +<%= config[:install_path] %>+
|
15
|
+
#
|
16
|
+
# cache_dir './local/omnibus/cache'
|
17
|
+
# install_path_cache_dir './local/omnibus/cache/install_path'
|
18
|
+
# source_dir './local/omnibus/src'
|
19
|
+
# build_dir './local/omnibus/build'
|
20
|
+
# package_dir './local/omnibus/pkg'
|
21
|
+
# package_tmp './local/omnibus/pkg-tmp'
|
22
|
+
|
23
|
+
# Enable S3 asset caching
|
24
|
+
# ------------------------------
|
4
25
|
# use_s3_caching true
|
26
|
+
# s3_access_key 'something'
|
27
|
+
# s3_secret_key 'something'
|
28
|
+
# s3_bucket 'some-bucket'
|
29
|
+
|
30
|
+
# Customize compiler bits
|
31
|
+
# ------------------------------
|
5
32
|
# solaris_compiler 'gcc'
|
6
|
-
# build_retries
|
33
|
+
# build_retries 5
|
data/lib/omnibus/version.rb
CHANGED
data/omnibus.gemspec
CHANGED
@@ -21,16 +21,17 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
22
22
|
gem.require_paths = ['lib']
|
23
23
|
|
24
|
+
gem.add_dependency 'chef-sugar', '~> 1.2'
|
24
25
|
gem.add_dependency 'mixlib-shellout', '~> 1.3'
|
25
26
|
gem.add_dependency 'mixlib-config', '~> 2.1'
|
26
27
|
gem.add_dependency 'ohai', '~> 6.12'
|
27
|
-
gem.add_dependency '
|
28
|
-
gem.add_dependency 'fpm', '~> 0.4'
|
28
|
+
gem.add_dependency 'fpm', '~> 1.0.0'
|
29
29
|
gem.add_dependency 'uber-s3'
|
30
30
|
gem.add_dependency 'thor', '>= 0.16.0'
|
31
31
|
|
32
|
-
gem.add_development_dependency 'rspec', '~> 2.14
|
33
|
-
gem.add_development_dependency 'rubocop', '~> 0.18
|
32
|
+
gem.add_development_dependency 'rspec', '~> 2.14'
|
33
|
+
gem.add_development_dependency 'rubocop', '~> 0.18'
|
34
|
+
gem.add_development_dependency 'rake'
|
34
35
|
|
35
36
|
gem.add_development_dependency 'bundler'
|
36
37
|
end
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
All Rights Reserved
|
@@ -0,0 +1,9 @@
|
|
1
|
+
This will install on your Mac.
|
2
|
+
|
3
|
+
--------------------------------------------------
|
4
|
+
|
5
|
+
This is a basic welcome message that is generated for every Omnibus project. You should customize this message by editing the file at files/mac_pkg/welcome.html.
|
6
|
+
|
7
|
+
If you are not the developer of , the presence of this message is likely a bug and should be reported to the creator.
|
8
|
+
|
9
|
+
Thank you for choosing Omnibus! Have a fantastic day!
|
File without changes
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Copyright (c) 2014 Chef Software, Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require 'spec_helper'
|
19
|
+
|
20
|
+
module Omnibus
|
21
|
+
describe Packager::MacDmg, :functional do
|
22
|
+
let(:name) { 'sample' }
|
23
|
+
let(:version) { '12.4.0' }
|
24
|
+
|
25
|
+
let(:project) do
|
26
|
+
Project.new(<<-EOH, __FILE__)
|
27
|
+
name '#{name}'
|
28
|
+
maintainer 'Chef'
|
29
|
+
homepage 'https://getchef.com'
|
30
|
+
build_version '#{version}'
|
31
|
+
install_path '#{tmp_path}/opt/#{name}'
|
32
|
+
mac_pkg_identifier 'test.pkg.#{name}'
|
33
|
+
EOH
|
34
|
+
end
|
35
|
+
|
36
|
+
let(:mac_packager) { Packager::MacPkg.new(project) }
|
37
|
+
|
38
|
+
before do
|
39
|
+
# Reset stale configuration
|
40
|
+
Omnibus.config.reset!
|
41
|
+
|
42
|
+
# Tell things to install into the cache directory
|
43
|
+
root = "#{tmp_path}/var/omnibus"
|
44
|
+
Omnibus.config.cache_dir "#{root}/cache"
|
45
|
+
Omnibus.config.install_path_cache_dir "#{root}/cache/install_path"
|
46
|
+
Omnibus.config.source_dir "#{root}/src"
|
47
|
+
Omnibus.config.build_dir "#{root}/build"
|
48
|
+
Omnibus.config.package_dir "#{root}/pkg"
|
49
|
+
Omnibus.config.package_tmp "#{root}/pkg-tmp"
|
50
|
+
|
51
|
+
# Enable DMG create
|
52
|
+
Omnibus.config.build_dmg true
|
53
|
+
|
54
|
+
# Point at our sample project fixture
|
55
|
+
Omnibus.config.project_root "#{fixtures_path}/sample"
|
56
|
+
|
57
|
+
# Create the target directory
|
58
|
+
FileUtils.mkdir_p(project.install_path)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'builds a pkg and a dmg' do
|
62
|
+
# Create the pkg resource
|
63
|
+
mac_packager.run!
|
64
|
+
|
65
|
+
# There is a tiny bit of hard-coding here, but I don't see a better
|
66
|
+
# solution for generating the package name
|
67
|
+
pkg = "#{project.package_dir}/#{name}-#{version}-1.mac_os_x.10.9.2.pkg"
|
68
|
+
dmg = "#{project.package_dir}/#{name}-#{version}-1.mac_os_x.10.9.2.dmg"
|
69
|
+
|
70
|
+
expect(File.exist?(pkg)).to be_true
|
71
|
+
expect(File.exist?(dmg)).to be_true
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|