in lib/omnibus/publisher.rb [69:125]
def packages
@packages ||= begin
publish_packages = []
build_packages = FileSyncer.glob(@pattern).map { |path| Package.new(path) }
if @options[:platform_mappings]
@options[:platform_mappings].each_pair do |build_platform, publish_platforms|
build_platform, build_platform_version, build_architecture = build_platform.split("-")
packages = build_packages.select do |p|
p.metadata[:platform] == build_platform &&
p.metadata[:platform_version] == build_platform_version &&
p.metadata[:arch] == build_architecture
end
if packages.empty?
log.warn(log_key) do
"Could not locate a package for build platform #{build_platform}-#{build_platform_version}-#{build_architecture}. " \
"Publishing will be skipped for: #{publish_platforms.join(", ")}"
end
end
publish_platforms.each do |publish_platform|
publish_platform, publish_platform_version, publish_architecture = publish_platform.split("-")
packages.each do |p|
publish_package = p.dup
publish_metadata = p.metadata.dup.to_hash
publish_metadata[:platform] = publish_platform
publish_metadata[:platform_version] = publish_platform_version
publish_metadata[:arch] = publish_architecture
publish_package.metadata = Metadata.new(publish_package, publish_metadata)
publish_packages << publish_package
end
end
end
else
publish_packages.concat(build_packages)
end
if publish_packages.empty?
log.info(log_key) { "No packages found, skipping publish" }
end
publish_packages
end
end