summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/status/build/scheduled.rb
blob: 6f460b62fa9766fd4eeed1aa1827022ea84139a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
module Gitlab
  module Ci
    module Status
      module Build
        class Scheduled < Status::Extended
          def illustration
            {
              image: 'illustrations/illustrations_scheduled-job_countdown.svg',
              size: 'svg-394',
              title: _("This is a delayed to run in ") + " #{execute_in}",
              content: _("This job will automatically run after it's timer finishes. " \
                         "Often they are used for incremental roll-out deploys " \
                         "to production environments. When unscheduled it converts " \
                         "into a manual action.")
            }
          end

          def status_tooltip
            "delayed manual action (#{execute_in})"
          end

          def self.matches?(build, user)
            build.scheduled? && build.scheduled_at
          end

          private

          include TimeHelper

          def execute_in
            remaining_seconds = [0, subject.scheduled_at - Time.now].max
            duration_in_numbers(remaining_seconds, true)
          end
        end
      end
    end
  end
end