summaryrefslogtreecommitdiff
path: root/spec/factories/ci/trigger_schedules.rb
blob: f909e343bf215025a603cd85405f646b0c083a72 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
FactoryGirl.define do
  factory :ci_trigger_schedule, class: Ci::TriggerSchedule do
    project factory: :project
    trigger factory: :ci_trigger

    trait :force_triggable do
      next_run_at Time.now - 1.month
    end

    trait :cron_nightly_build do
      cron '0 1 * * *'
      cron_time_zone 'Europe/Istanbul'
      next_run_at do # TODO: Use CronParser
        time = Time.now.in_time_zone(cron_time_zone)
        time = time + 1.day if time.hour > 1
        time = time.change(sec: 0, min: 0, hour: 1)
        time
      end
    end

    trait :cron_weekly_build do
      cron '0 1 * * 5'
      cron_time_zone 'Europe/Istanbul'
      # TODO: next_run_at
    end

    trait :cron_monthly_build do
      cron '0 1 22 * *'
      cron_time_zone 'Europe/Istanbul'
      # TODO: next_run_at
    end

    trait :cron_every_5_minutes do
      cron '*/5 * * * *'
      cron_time_zone 'Europe/Istanbul'
      # TODO: next_run_at
    end

    trait :cron_every_5_hours do
      cron '* */5 * * *'
      cron_time_zone 'Europe/Istanbul'
      # TODO: next_run_at
    end

    trait :cron_every_5_days do
      cron '* * */5 * *'
      cron_time_zone 'Europe/Istanbul'
      # TODO: next_run_at
    end

    trait :cron_every_5_months do
      cron '* * * */5 *'
      cron_time_zone 'Europe/Istanbul'
      # TODO: next_run_at
    end
  end
end