omnibus 5.6.1 → 5.6.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +5 -5
  2. data/.expeditor/config.yml +31 -0
  3. data/.expeditor/update_version.sh +12 -0
  4. data/.github/CODEOWNERS +3 -0
  5. data/.github/ISSUE_TEMPLATE.md +0 -2
  6. data/.github/PULL_REQUEST_TEMPLATE.md +0 -1
  7. data/.gitignore +1 -0
  8. data/.travis.yml +2 -2
  9. data/CHANGELOG.md +29 -3
  10. data/Gemfile +1 -1
  11. data/README.md +2 -2
  12. data/VERSION +1 -0
  13. data/appveyor.yml +3 -2
  14. data/docs/Building on Debian.md +6 -4
  15. data/docs/Building on OSX.md +2 -2
  16. data/docs/Building on RHEL.md +3 -3
  17. data/docs/Building on Windows.md +1 -1
  18. data/lib/omnibus.rb +1 -0
  19. data/lib/omnibus/build_version.rb +13 -4
  20. data/lib/omnibus/builder.rb +10 -5
  21. data/lib/omnibus/config.rb +40 -8
  22. data/lib/omnibus/fetcher.rb +2 -0
  23. data/lib/omnibus/fetchers/file_fetcher.rb +131 -0
  24. data/lib/omnibus/packagers/deb.rb +81 -0
  25. data/lib/omnibus/packagers/ips.rb +22 -7
  26. data/lib/omnibus/publishers/artifactory_publisher.rb +2 -6
  27. data/lib/omnibus/publishers/s3_publisher.rb +7 -5
  28. data/lib/omnibus/s3_cache.rb +1 -0
  29. data/lib/omnibus/s3_helpers.rb +2 -0
  30. data/lib/omnibus/sugarable.rb +1 -0
  31. data/lib/omnibus/version.rb +1 -1
  32. data/lib/omnibus/whitelist.rb +1 -0
  33. data/omnibus.gemspec +3 -3
  34. data/resources/msi/CustomActionFastMsi.CA.dll +0 -0
  35. data/resources/msi/source.wxs.erb +7 -0
  36. data/spec/functional/fetchers/file_fetcher_spec.rb +92 -0
  37. data/spec/spec_helper.rb +1 -1
  38. data/spec/unit/build_version_spec.rb +11 -1
  39. data/spec/unit/compressor_spec.rb +2 -2
  40. data/spec/unit/config_spec.rb +13 -3
  41. data/spec/unit/fetchers/file_fetcher_spec.rb +81 -0
  42. data/spec/unit/fetchers/net_fetcher_spec.rb +14 -3
  43. data/spec/unit/health_check_spec.rb +3 -3
  44. data/spec/unit/metadata_spec.rb +8 -8
  45. data/spec/unit/packager_spec.rb +10 -10
  46. data/spec/unit/packagers/bff_spec.rb +1 -1
  47. data/spec/unit/packagers/deb_spec.rb +40 -0
  48. data/spec/unit/packagers/ips_spec.rb +31 -5
  49. data/spec/unit/packagers/rpm_spec.rb +5 -5
  50. data/spec/unit/project_spec.rb +7 -7
  51. data/spec/unit/publishers/artifactory_publisher_spec.rb +16 -0
  52. data/spec/unit/publishers/s3_publisher_spec.rb +17 -0
  53. data/spec/unit/software_spec.rb +10 -8
  54. metadata +16 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d528e6f65a006c07fab5ba8eb1274a8f8960e19f
4
- data.tar.gz: 6f434ffc471faddb0fda4a0ed5cf9520ae201115
2
+ SHA256:
3
+ metadata.gz: 71f2ae10f52145f7642fc97328ef8dbe9a2124aeae94d4f937285d8a0c433237
4
+ data.tar.gz: 96984676c415146364c059c68097247ef05c5b82198bce8fe241276509b921ff
5
5
  SHA512:
6
- metadata.gz: d37ccec9688a74a78dbd847a1096daa29e75a2d41f8fa57e7ba0e5fa2ffe1afc3ba72dde544c82a35d8c98a6da1220f2863ff12fe0656715ea80c0d0d53d2189
7
- data.tar.gz: 2cd1aa5e70388fde16a4e600b69decbac1c1bd5184dcf54d9530cd088c1d885ab97ace3f090127a21531efdfc5d1d16ad3be6539fce5c05076b353f96b097a00
6
+ metadata.gz: f5c09bce7a955067eb2e487a4e5debc44f2cbf57fb29a62cb1f331130b9170228845098f9acc615122cacac4b7e51b296c66401c64f7bbf8819681b101693ede
7
+ data.tar.gz: c9be0cfa0ec4fb0b59a6f1741a240a7a1ade7664e462dd6bec5eba2bbfbb967bb6d0fb6932544b6628b39864e187e1456521086b599e049a6d39c4c4bd824584
@@ -0,0 +1,31 @@
1
+ slack:
2
+ notify_channel: omnibus-rfr
3
+
4
+ github:
5
+ maintainer_group: chef/omnibus-maintainers
6
+ version_tag_format: "v{{version}}"
7
+ minor_bump_labels:
8
+ - "Version: Bump Minor"
9
+
10
+ rubygems:
11
+ - omnibus
12
+
13
+ merge_actions:
14
+ - built_in:bump_version:
15
+ ignore_labels:
16
+ - "Version: Skip Bump"
17
+ - "Expeditor: Skip All"
18
+ - bash:.expeditor/update_version.sh:
19
+ only_if:
20
+ - built_in:bump_version
21
+ - built_in:update_changelog:
22
+ ignore_labels:
23
+ - "Changelog: Skip Update"
24
+ - "Expeditor: Skip All"
25
+ - built_in:build_gem:
26
+ only_if:
27
+ - built_in:bump_version
28
+
29
+ promote:
30
+ action:
31
+ - built_in:publish_rubygems
@@ -0,0 +1,12 @@
1
+ #!/bin/sh
2
+ #
3
+ # After a PR merge, Chef Expeditor will bump the PATCH version in the VERSION file.
4
+ # It then executes this file to update any other files/components with that new version.
5
+ #
6
+
7
+ set -evx
8
+
9
+ sed -i -r "s/^(\s*)VERSION = \".+\"/\1VERSION = \"$(cat VERSION)\"/" lib/omnibus/version.rb
10
+
11
+ # Once Expeditor finshes executing this script, it will commit the changes and push
12
+ # the commit as a new tag corresponding to the value in the VERSION file.
@@ -0,0 +1,3 @@
1
+ # Order is important. The last matching pattern has the most precedence.
2
+
3
+ * @chef/omnibus-maintainers
@@ -22,5 +22,3 @@ The relevant output of the Omnibus build or a link to a gist of the entire build
22
22
  The verbose build output (`omnibus build <PROJECT> -l internal`) may be useful, but please link to a gist, or truncate it.
23
23
 
24
24
  --------------------------------------------------
25
- /cc @chef/omnibus-maintainers <- This ensures the Omnibus Maintainers team are notified to review this PR.
26
-
@@ -3,7 +3,6 @@
3
3
  Briefly describe the new feature or fix here
4
4
 
5
5
  --------------------------------------------------
6
- /cc @chef/omnibus-maintainers <- This ensures the Omnibus Maintainers team are notified to review this PR.
7
6
 
8
7
  #### Maintainers
9
8
 
data/.gitignore CHANGED
@@ -52,6 +52,7 @@ $RECYCLE.BIN/
52
52
  /test/version_tmp/
53
53
  /tmp/
54
54
  /spec/tmp
55
+ gem_graph.png
55
56
 
56
57
  ## Specific to RubyMotion:
57
58
  .dat*
@@ -1,7 +1,7 @@
1
1
  sudo: false
2
2
  rvm:
3
- - 2.2.5
4
- - 2.3.1
3
+ - 2.2.7
4
+ - 2.3.4
5
5
  - 2.4.1
6
6
  bundler_args: "--jobs 7 --without docs local"
7
7
  branches:
@@ -1,5 +1,31 @@
1
- Omnibus CHANGELOG
2
- =================
1
+ <!-- usage documentation: http://expeditor-docs.es.chef.io/configuration/changelog/ -->
2
+
3
+ <!-- latest_release 5.6.6 -->
4
+ ## [v5.6.6](https://github.com/chef/omnibus/tree/v5.6.6) (2018-01-30)
5
+
6
+ #### Merged Pull Requests
7
+ - Empty commit to force release trigger [#817](https://github.com/chef/omnibus/pull/817) ([scotthain](https://github.com/scotthain))
8
+ <!-- latest_release -->
9
+
10
+ ## [v5.6.5](https://github.com/chef/omnibus/tree/v5.6.5) (2018-01-30)
11
+
12
+ #### Merged Pull Requests
13
+ - Add config to allow rubygems publish and promote [#816](https://github.com/chef/omnibus/pull/816) ([scotthain](https://github.com/scotthain))
14
+
15
+ ## [v5.6.4](https://github.com/chef/omnibus/tree/v5.6.4) (2018-01-29)
16
+
17
+ #### Merged Pull Requests
18
+ - Update custom action and support MSIFASTINSTALL property [#815](https://github.com/chef/omnibus/pull/815) ([stuartpreston](https://github.com/stuartpreston))
19
+
20
+ ## [v5.6.3](https://github.com/chef/omnibus/tree/v5.6.3) (2018-01-26)
21
+
22
+ #### Merged Pull Requests
23
+ - sometimes we just need to gorram make a link [#814](https://github.com/chef/omnibus/pull/814) ([thommay](https://github.com/thommay))
24
+
25
+ ## [v5.6.2](https://github.com/chef/omnibus/tree/v5.6.2) (2018-01-25)
26
+
27
+ #### Merged Pull Requests
28
+ - Whitelist Foundation framework [#813](https://github.com/chef/omnibus/pull/813) ([thommay](https://github.com/thommay))
3
29
 
4
30
  v5.6.1 (June 22, 2017)
5
31
  ----------------------
@@ -773,4 +799,4 @@ BUG FIXES:
773
799
  [@ohlol]: https://github.com/ohlol
774
800
  [@schisamo]: https://github.com/schisamo
775
801
  [@sl4mmy]: https://github.com/sl4mmy
776
- [@totally]: https://github.com/totally
802
+ [@totally]: https://github.com/totally
data/Gemfile CHANGED
@@ -9,7 +9,7 @@ gem "license_scout", git: "https://github.com/chef/license_scout"
9
9
  gem "net-ssh", "3.2.0"
10
10
 
11
11
  group :docs do
12
- gem "yard", "~> 0.8"
12
+ gem "yard", "~> 0.9"
13
13
  gem "redcarpet", "~> 2.2.2"
14
14
  gem "github-markup", "~> 0.7"
15
15
  end
data/README.md CHANGED
@@ -83,7 +83,7 @@ s3_secret_key ENV['S3_SECRET_KEY']
83
83
  s3_bucket ENV['S3_BUCKET']
84
84
  ```
85
85
 
86
- For more information, please see the [`Config` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Config).
86
+ For more information, please see the [`Config` documentation](http://www.rubydoc.info/github/chef/omnibus/Omnibus/Config).
87
87
 
88
88
  You can tell Omnibus to load a different configuration file by passing the `--config` option to any command:
89
89
 
@@ -129,7 +129,7 @@ DSL Method | Description
129
129
 
130
130
  By default a timestamp is appended to the build_version. You can turn this behavior off by setting `append_timestamp` to `false` in your configuration file or using `--override append_timestamp:false` at the command line.
131
131
 
132
- For more information, please see the [`Project` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Project).
132
+ For more information, please see the [`Project` documentation](http://www.rubydoc.info/github/chef/omnibus/Omnibus/Project).
133
133
 
134
134
  ### Software
135
135
 
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 5.6.6
@@ -1,11 +1,12 @@
1
1
  version: "{build}"
2
2
 
3
- os: Windows Server 2012
3
+ os: Windows Server 2012 R2
4
4
  platform:
5
5
  - x64
6
6
 
7
7
  environment:
8
8
  matrix:
9
+ - RUBY_VERSION: 24
9
10
  - RUBY_VERSION: 23
10
11
  - RUBY_VERSION: 22
11
12
 
@@ -21,7 +22,7 @@ install:
21
22
  - echo %PATH%
22
23
  - ruby --version
23
24
  - gem --version
24
- - gem install bundler -v 1.10.6 --quiet --no-ri --no-rdoc
25
+ - gem install bundler -v 1.10.6 --quiet --no-ri --no-rdoc --force
25
26
  - bundler --version
26
27
  - cp C:\Ruby23-x64\DevKit\mingw\bin\bsdtar.exe C:\Ruby23-x64\DevKit\mingw\bin\tar.exe
27
28
  - appveyor DownloadFile http://curl.haxx.se/ca/cacert.pem -FileName C:\cacert.pem
@@ -9,7 +9,7 @@ Building a .deb
9
9
  Omnibus assumes the existence of the `fakeroot` and `dpkg-deb` command on the build system. The [omnibus cookbook](https://supermarket.getchef.com/cookbooks/omnibus) automatically handles this installation. If you are not using the Omnibus cookbook, you must install these packages manually or using another tool.
10
10
 
11
11
  ### Configurables
12
- A number of project configuration values are taken into consideration for building Debian packages. These options are further described in the [`Project` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Project).
12
+ A number of project configuration values are taken into consideration for building Debian packages. These options are further described in the [`Project` documentation](http://www.rubydoc.info/github/chef/omnibus/Omnibus/Project).
13
13
 
14
14
  These values are interpolated and evaluated using Omnibus' internal DEB templates. For 99% of users, these templates should be satisfactory. If you encounter an instance where Omnibus' ERB templates do not satisfy a use case, please open an issue.
15
15
 
@@ -39,6 +39,7 @@ package :deb do
39
39
  license 'Apache 2.0'
40
40
  priority 'extra'
41
41
  section 'databases'
42
+ signing_passphrase 'acbd1234'
42
43
  end
43
44
  ```
44
45
 
@@ -46,14 +47,15 @@ Some DSL methods available include:
46
47
 
47
48
  | DSL Method | Description |
48
49
  | :------------------: | --------------------------------------------|
50
+ | `signing_passphrase` | The passphrase to sign the RPM with |
49
51
  | `vendor` | The name of the package producer |
50
52
  | `license` | The default license for the package |
51
53
  | `priority` | The priority for the package |
52
54
  | `section` | The section for this package |
53
55
 
54
- If you are unfamilar with any of these terms, you should just accept the defaults. For more information on the purpose of any of these configuration options, please see the DEB spec.
56
+ If you are unfamiliar with any of these terms, you should just accept the defaults. For more information on the purpose of any of these configuration options, please see the DEB spec.
55
57
 
56
- For more information, please see the [`Packager::DEB` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Packager/DEB).
58
+ For more information, please see the [`Packager::DEB` documentation](http://www.rubydoc.info/github/chef/omnibus/Omnibus/Packager/DEB).
57
59
 
58
60
  ### Notes on DEB-signing
59
- At this time, signing Debian packages is not supported.
61
+ To sign an DEB, you will need a GPG keypair. You can [create your own signing key](http://www.madboa.com/geek/gpg-quickstart/) or [import an existing one](http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/gpg-cs.html). Omnibus will automatically call `gpg` with arguments that assume the real name associated to the GPG key is the same as the name of the project maintainer as specified in your Omnibus config.
@@ -5,7 +5,7 @@ This document details the steps and configurables for building omnibus packages
5
5
 
6
6
  Building a .pkg
7
7
  ---------------
8
- In Mac OS X, a `.pkg` is a special file that is read by Installer.app that contains the set of instructions for installating a piece of software on a target system.
8
+ In Mac OS X, a `.pkg` is a special file that is read by Installer.app that contains the set of instructions for installing a piece of software on a target system.
9
9
 
10
10
  ### Requirements
11
11
  By default, Omnibus does not generate pkg-related assets. To generate the pkg assets, run the Omnibus new command with the `--pkg-assets` flag:
@@ -89,4 +89,4 @@ Some DSL methods available include:
89
89
  | `window_bounds` | The size and location of the DMG window |
90
90
  | `pkg_position` | The position of the pkg inside the DMG |
91
91
 
92
- For more information, please see the [`Compressor::DMG` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Compressor/DMG).
92
+ For more information, please see the [`Compressor::DMG` documentation](http://www.rubydoc.info/github/chef/omnibus/Omnibus/Compressor/DMG).
@@ -27,7 +27,7 @@ The following Project values are taken into consideration when building RPMs:
27
27
  - `runtime_dependency`
28
28
  - `url`
29
29
 
30
- These options are further described in the [`Project` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Project).
30
+ These options are further described in the [`Project` documentation](http://www.rubydoc.info/github/chef/omnibus/Omnibus/Project).
31
31
 
32
32
  These values are interpolated and evaluated using Omnibus' internal RPM templates. For 99% of users, these templates should be satisfactory. If you encounter an instance where Omnibus' RPM templates do not satisfy a use case, please open an issue.
33
33
 
@@ -67,9 +67,9 @@ Some DSL methods available include:
67
67
  | `priority` | The priority for the package |
68
68
  | `category` | The category for this package |
69
69
 
70
- If you are unfamilar with any of these terms, you should just accept the defaults. For more information on the purpose of any of these configuration options, please see the RPM spec.
70
+ If you are unfamiliar with any of these terms, you should just accept the defaults. For more information on the purpose of any of these configuration options, please see the RPM spec.
71
71
 
72
- For more information, please see the [`Packager::RPM` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Packager/RPM).
72
+ For more information, please see the [`Packager::RPM` documentation](http://www.rubydoc.info/github/chef/omnibus/Omnibus/Packager/RPM).
73
73
 
74
74
  ### Notes on RPM-signing
75
75
  To sign an RPM, you will need a GPG keypair. You can [create your own signing key](http://www.madboa.com/geek/gpg-quickstart/) or [import an existing one](http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/gpg-cs.html). Omnibus automatically generates an `.rpmmacros` config file for `rpmbuild` that assumes that the real name associated to the GPG key is the same as the name of the project maintainer as specified in your Omnibus config. You can override this by creating your own `.rpmmacros` using the steps above.
@@ -54,4 +54,4 @@ Some DSL methods available include:
54
54
  | **`upgrade_code`** | The unique GUID for this package |
55
55
  | `parameters` | And arbirtary list of key-value pairs to render |
56
56
 
57
- For more information, please see the [`Packager::MSI` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Packager/MSI).
57
+ For more information, please see the [`Packager::MSI` documentation](http://www.rubydoc.info/github/chef/omnibus/Omnibus/Packager/MSI).
@@ -67,6 +67,7 @@ module Omnibus
67
67
  autoload :NetFetcher, "omnibus/fetchers/net_fetcher"
68
68
  autoload :NullFetcher, "omnibus/fetchers/null_fetcher"
69
69
  autoload :PathFetcher, "omnibus/fetchers/path_fetcher"
70
+ autoload :FileFetcher, "omnibus/fetchers/file_fetcher"
70
71
 
71
72
  autoload :ArtifactoryPublisher, "omnibus/publishers/artifactory_publisher"
72
73
  autoload :NullPublisher, "omnibus/publishers/null_publisher"
@@ -124,12 +124,21 @@ module Omnibus
124
124
  build_tag
125
125
  end
126
126
 
127
- # We'll attempt to retrive the timestamp from the Jenkin's set BUILD_ID
128
- # environment variable. This will ensure platform specfic packages for the
129
- # same build will share the same timestamp.
127
+ # We'll attempt to retrieve the timestamp from the Jenkin's set BUILD_TIMESTAMP
128
+ # or fall back to BUILD_ID environment variable. This will ensure platform specfic
129
+ # packages for the same build will share the same timestamp.
130
130
  def build_start_time
131
131
  @build_start_time ||= begin
132
- if ENV["BUILD_ID"]
132
+ if ENV["BUILD_TIMESTAMP"]
133
+ begin
134
+ Time.strptime(ENV["BUILD_TIMESTAMP"], "%Y-%m-%d_%H-%M-%S")
135
+ rescue ArgumentError
136
+ error_message = "BUILD_TIMESTAMP environment variable "
137
+ error_message << "should be in YYYY-MM-DD_hh-mm-ss "
138
+ error_message << "format."
139
+ raise ArgumentError, error_message
140
+ end
141
+ elsif ENV["BUILD_ID"]
133
142
  begin
134
143
  Time.strptime(ENV["BUILD_ID"], "%Y-%m-%d_%H-%M-%S")
135
144
  rescue ArgumentError
@@ -660,12 +660,16 @@ module Omnibus
660
660
  command = "link `#{source}' to `#{destination}'"
661
661
  build_commands << BuildCommand.new(command) do
662
662
  Dir.chdir(software.project_dir) do
663
- files = FileSyncer.glob(source)
664
- if files.empty?
665
- log.warn(log_key) { "no matched files for glob #{command}" }
663
+ if options.delete(:unchecked)
664
+ FileUtils.ln_s(source, destination, options)
666
665
  else
667
- files.each do |file|
668
- FileUtils.ln_s(file, destination, options)
666
+ files = FileSyncer.glob(source)
667
+ if files.empty?
668
+ log.warn(log_key) { "no matched files for glob #{command}" }
669
+ else
670
+ files.each do |file|
671
+ FileUtils.ln_s(file, destination, options)
672
+ end
669
673
  end
670
674
  end
671
675
  end
@@ -928,6 +932,7 @@ module Omnibus
928
932
  original = ENV.to_hash
929
933
 
930
934
  ENV.delete("_ORIGINAL_GEM_PATH")
935
+ ENV.delete_if { |k, _| k.start_with?("BUNDLER_") }
931
936
  ENV.delete_if { |k, _| k.start_with?("BUNDLE_") }
932
937
  ENV.delete_if { |k, _| k.start_with?("GEM_") }
933
938
  ENV.delete_if { |k, _| k.start_with?("RUBY") }
@@ -101,9 +101,9 @@ module Omnibus
101
101
  # @return [String]
102
102
  default(:base_dir) do
103
103
  if Ohai["platform"] == "windows"
104
- "C:/omnibus-ruby"
104
+ File.join(*["C:/omnibus-ruby", cache_suffix].compact)
105
105
  else
106
- "/var/cache/omnibus"
106
+ File.join(*["/var/cache/omnibus", cache_suffix].compact)
107
107
  end
108
108
  end
109
109
 
@@ -113,6 +113,12 @@ module Omnibus
113
113
  # @return [String]
114
114
  default(:cache_dir) { File.join(base_dir, "cache") }
115
115
 
116
+ # The suffix added (typically the software name) to create a wholly
117
+ # separate base cache directory for the software.
118
+ #
119
+ # @return [String]
120
+ default(:cache_suffix, nil)
121
+
116
122
  # The absolute path to the directory on the virtual machine where
117
123
  # git caching will occur and software's will be progressively cached.
118
124
  #
@@ -277,7 +283,7 @@ module Omnibus
277
283
 
278
284
  # The S3 access key to use with S3 caching.
279
285
  #
280
- # @return [String]
286
+ # @return [String, nil]
281
287
  default(:s3_access_key) do
282
288
  if s3_profile
283
289
  nil
@@ -299,7 +305,7 @@ module Omnibus
299
305
 
300
306
  # The AWS credentials profile to use with S3 caching.
301
307
  #
302
- # @return [String]
308
+ # @return [String, nil]
303
309
  default(:s3_profile, nil)
304
310
 
305
311
  # The region of the S3 bucket you want to cache software artifacts in.
@@ -315,6 +321,11 @@ module Omnibus
315
321
  # @return [String, nil]
316
322
  default(:s3_endpoint, nil)
317
323
 
324
+ # Use path style URLs instead of subdomains for S3 URLs
325
+ #
326
+ # @return [true, false]
327
+ default(:s3_force_path_style, false)
328
+
318
329
  # Enable or disable S3 Accelerate support
319
330
  #
320
331
  # @return [true, false]
@@ -371,6 +382,14 @@ module Omnibus
371
382
  raise MissingRequiredAttribute.new(self, :artifactory_base_path, "'com/mycompany'")
372
383
  end
373
384
 
385
+ # Directory pattern for the Artifactory publisher.
386
+ # Interpolation of metadata keys is supported.
387
+ #
388
+ # @example '%{platform}/%{platform_version}/%{arch}/%{basename}'
389
+ #
390
+ # @return [String]
391
+ default(:artifactory_publish_pattern, "%{name}/%{version}/%{platform}/%{platform_version}/%{basename}")
392
+
374
393
  # The path on disk to an SSL pem file to sign requests with.
375
394
  #
376
395
  # @return [String, nil]
@@ -411,9 +430,9 @@ module Omnibus
411
430
 
412
431
  # The S3 access key to use for S3 artifact release.
413
432
  #
414
- # @return [String]
433
+ # @return [String, nil]
415
434
  default(:publish_s3_access_key) do
416
- if s3_profile
435
+ if publish_s3_profile
417
436
  nil
418
437
  else
419
438
  raise MissingRequiredAttribute.new(self, :publish_s3_access_key, "'ABCD1234'")
@@ -422,15 +441,28 @@ module Omnibus
422
441
 
423
442
  # The S3 secret key to use for S3 artifact release
424
443
  #
425
- # @return [String]
444
+ # @return [String, nil]
426
445
  default(:publish_s3_secret_key) do
427
- if s3_profile
446
+ if publish_s3_profile
428
447
  nil
429
448
  else
430
449
  raise MissingRequiredAttribute.new(self, :publish_s3_secret_key, "'EFGH5678'")
431
450
  end
432
451
  end
433
452
 
453
+ # The AWS credentials profile to use with S3 publisher.
454
+ #
455
+ # @return [String, nil]
456
+ default(:publish_s3_profile, nil)
457
+
458
+ # Directory pattern for the S3 publisher.
459
+ # Interpolation of metadata keys is supported.
460
+ #
461
+ # @example '%{platform}/%{platform_version}/%{arch}/%{basename}'
462
+ #
463
+ # @return [String]
464
+ default(:s3_publish_pattern, "%{platform}/%{platform_version}/%{arch}/%{basename}")
465
+
434
466
  # --------------------------------------------------
435
467
  # @!endgroup
436
468
  #