BigW Consortium Gitlab

build_email_worker.rb 674 Bytes
Newer Older
1 2
class BuildEmailWorker
  include Sidekiq::Worker
3
  include BuildQueue
4 5

  def perform(build_id, recipients, push_data)
6
    recipients.each do |recipient|
7 8 9 10 11 12 13 14 15 16 17 18 19 20
      begin
        case push_data['build_status']
        when 'success'
          Notify.build_success_email(build_id, recipient).deliver_now
        when 'failed'
          Notify.build_fail_email(build_id, recipient).deliver_now
        end
      # These are input errors and won't be corrected even if Sidekiq retries
      rescue Net::SMTPFatalError, Net::SMTPSyntaxError => e
        logger.info("Failed to send e-mail for project '#{push_data['project_name']}' to #{recipient}: #{e}")
      end
    end
  end
end