travis-api/lib/travis/services/next_build_number.rb
Aakriti Gupta 65f1a29d86 Move travis-core files from /vendor to /lib.
- Re-factor
- Remove code for notifications
- Remove addons
- Remove travis-core gem.
- Ignore logs directory only
- Move core tests to spec/lib
2016-07-20 11:22:25 +02:00

41 lines
987 B
Ruby

require 'travis/services/base'
require 'travis/notification'
module Travis
module Services
class NextBuildNumber < Base
extend Travis::Instrumentation
register :next_build_number
def run
number = repository.next_build_number
if number.nil?
number = repository.builds.maximum('number::int4').to_i + 1
repository.next_build_number = number + 1
else
repository.next_build_number += 1
end
repository.save!(validate: false)
number
end
instrument :run
def repository
@repository ||= Repository.find(params[:repository_id])
end
class Instrument < Notification::Instrument
def run_completed
params = target.params
publish(
msg: "for repository_id=#{params[:repository_id]}",
repository_id: params[:repository_id]
)
end
end
Instrument.attach_to(self)
end
end
end