Sha256: 248a4e45d72880b9c3946a6c2ada5ccdcb689afb373ed31944c15bdbb107efbd

Contents?: true

Size: 889 Bytes

Versions: 1

Compression:

Stored size: 889 Bytes

Contents

require 'celluloid'
require 'mime/types'

module Buildbox
  class Artifact::Uploader
    include Celluloid
    include Celluloid::Logger

    def initialize(api, access_token, build, artifacts)
      @api = api
      @access_token = access_token
      @build = build
      @artifacts = artifacts
    end

    def prepare_and_upload
      info "Preparing #{@artifacts.count} artifacts for upload"

      responses = @api.create_artifacts(@access_token, @build, @artifacts)
      responses.each do |response|
        artifact = @artifacts.find { |artifact| artifact.id == response['id'] }

        artifact.remote_id = response['artifact']['id']
        artifact.upload_instructions = response['artifact']['uploader']
      end

      @artifacts.each do |artifact|
        Celluloid::Actor[:artifact_poster_pool].async.post(@api, @access_token, @build, artifact)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
buildbox-0.7.beta1 lib/buildbox/artifact/uploader.rb