upload

in lib/gitlab/package_repository.rb [35:72]


  def upload(repository = nil, dry_run = false)
    if upload_user.nil?
      puts "Owner of the repository to which packages are being uploaded not specified! Set `PACKAGECLOUD_USER` environment variable."
      return
    end

    
    
    upload_list = package_list(repository)
    raise "No packages found for upload. Are artifacts available?" if upload_list.empty?

    validate(dry_run)

    upload_list.each do |pkg|
      
      cmd = "LC_ALL='en_US.UTF-8' bin/package_cloud push #{upload_user}/#{pkg} --url=https://packages.gitlab.com"
      puts "Uploading...\n"

      puts "Running the command: #{cmd}"

      next if dry_run

      Retriable.with_context(:package_publish, on: PackageUploadError) do
        result = `

        if child_process_status == 1
          unless /filename: has already been taken/.match?(result)
            puts 'Upload to package server failed!.'
            puts "The command returned the output: #{result}"
            raise PackageUploadError, "Upload to package server failed!."
          end

          puts "Package #{pkg} has already been uploaded, skipping.\n"
        end
      end
    end
  end