build_for

in lib/omnibus/publishers/artifactory_publisher.rb [111:168]


    def build_for(packages)
      metadata = packages.first.metadata
      name     = metadata[:name]

      
      manifest = if version_manifest = metadata[:version_manifest]
                   Manifest.from_hash(version_manifest)
                 else
                   Manifest.new(
                     metadata[:version],
                     
                     
                     nil,
                     metadata[:license]
                   )
                 end

      
      log.info(log_key) { "Saving build info for #{name}, Build ##{manifest.build_version}" }

      Artifactory::Resource::Build.new(
        client: client,
        name:   name,
        number: manifest.build_version,
        vcs_revision: manifest.build_git_revision,
        build_agent: {
          name: "omnibus",
          version: Omnibus::VERSION,
        },
        modules: [
          {
            
            id: [
              Config.artifactory_base_path.tr("/", "."),
              name,
              manifest.build_version,
            ].join(":"),
            artifacts: packages.map do |package|
              [
                {
                  type: File.extname(package.path).split(".").last,
                  sha1: package.metadata[:sha1],
                  md5: package.metadata[:md5],
                  name: package.metadata[:basename],
                },
                {
                  type: File.extname(package.metadata.path).split(".").last,
                  sha1: digest(package.metadata.path, :sha1),
                  md5: digest(package.metadata.path, :md5),
                  name: File.basename(package.metadata.path),
                },
              ]
            end.flatten,
          },
        ]
      )
    end