Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/ci/trigger.rb1
-rw-r--r--app/models/ci/trigger_schedule.rb (renamed from app/models/ci/scheduled_trigger.rb)10
-rw-r--r--app/workers/trigger_schedule_worker.rb (renamed from app/workers/scheduled_trigger_worker.rb)5
-rw-r--r--config/gitlab.yml.example2
-rw-r--r--config/initializers/1_settings.rb6
-rw-r--r--spec/factories/ci/scheduled_triggers.rb5
-rw-r--r--spec/models/ci/scheduled_trigger_spec.rb29
-rw-r--r--spec/models/ci/trigger_schedule_spec.rb29
-rw-r--r--spec/models/ci/trigger_spec.rb1
-rw-r--r--spec/workers/trigger_schedule_worker_spec.rb (renamed from spec/workers/scheduled_trigger_worker_spec.rb)16
10 files changed, 52 insertions, 52 deletions
diff --git a/app/models/ci/trigger.rb b/app/models/ci/trigger.rb
index cba1d81a861..0a89f3e0640 100644
--- a/app/models/ci/trigger.rb
+++ b/app/models/ci/trigger.rb
@@ -8,6 +8,7 @@ module Ci
belongs_to :owner, class_name: "User"
has_many :trigger_requests, dependent: :destroy
+ has_one :trigger_schedule, dependent: :destroy
validates :token, presence: true, uniqueness: true
diff --git a/app/models/ci/scheduled_trigger.rb b/app/models/ci/trigger_schedule.rb
index 9af274243a5..7efaa228a93 100644
--- a/app/models/ci/scheduled_trigger.rb
+++ b/app/models/ci/trigger_schedule.rb
@@ -1,11 +1,11 @@
module Ci
- class ScheduledTrigger < ActiveRecord::Base
+ class TriggerSchedule < ActiveRecord::Base
extend Ci::Model
acts_as_paranoid
belongs_to :project
- belongs_to :owner, class_name: "User"
+ belongs_to :trigger
def schedule_next_run!
next_time = Ci::CronParser.new(cron, cron_time_zone).next_time_from_now
@@ -14,8 +14,8 @@ module Ci
end
end
- def update_last_run!
- update_attributes(last_run_at: Time.now)
- end
+ # def update_last_run!
+ # update_attributes(last_run_at: Time.now)
+ # end
end
end
diff --git a/app/workers/scheduled_trigger_worker.rb b/app/workers/trigger_schedule_worker.rb
index 5c2f03dee79..d55e9378e02 100644
--- a/app/workers/scheduled_trigger_worker.rb
+++ b/app/workers/trigger_schedule_worker.rb
@@ -1,9 +1,9 @@
-class ScheduledTriggerWorker
+class TriggerScheduleWorker
include Sidekiq::Worker
include CronjobQueue
def perform
- Ci::ScheduledTrigger.where("next_run_at < ?", Time.now).find_each do |trigger|
+ Ci::TriggerSchedule.where("next_run_at < ?", Time.now).find_each do |trigger|
begin
Ci::CreatePipelineService.new(trigger.project, trigger.owner, ref: trigger.ref).
execute(ignore_skip_ci: true, scheduled_trigger: true)
@@ -11,7 +11,6 @@ class ScheduledTriggerWorker
Rails.logger.error "#{trigger.id}: Failed to trigger job: #{e.message}"
ensure
trigger.schedule_next_run!
- trigger.update_last_run!
end
end
end
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
index 892064949ce..6fb67426c8b 100644
--- a/config/gitlab.yml.example
+++ b/config/gitlab.yml.example
@@ -181,7 +181,7 @@ production: &base
stuck_ci_jobs_worker:
cron: "0 * * * *"
# Execute scheduled triggers
- scheduled_trigger_worker:
+ trigger_schedule_worker:
cron: "0 * * * *"
# Remove expired build artifacts
expire_build_artifacts_worker:
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 15e6b382eb7..71342f435f1 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -315,9 +315,9 @@ Settings['cron_jobs'] ||= Settingslogic.new({})
Settings.cron_jobs['stuck_ci_jobs_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['stuck_ci_jobs_worker']['cron'] ||= '0 * * * *'
Settings.cron_jobs['stuck_ci_jobs_worker']['job_class'] = 'StuckCiJobsWorker'
-Settings.cron_jobs['scheduled_trigger_worker'] ||= Settingslogic.new({})
-Settings.cron_jobs['scheduled_trigger_worker']['cron'] ||= '0 * * * *'
-Settings.cron_jobs['scheduled_trigger_worker']['job_class'] = 'ScheduledTriggerWorker'
+Settings.cron_jobs['trigger_schedule_worker'] ||= Settingslogic.new({})
+Settings.cron_jobs['trigger_schedule_worker']['cron'] ||= '0 * * * *'
+Settings.cron_jobs['trigger_schedule_worker']['job_class'] = 'TriggerScheduleWorker'
Settings.cron_jobs['expire_build_artifacts_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['expire_build_artifacts_worker']['cron'] ||= '50 * * * *'
Settings.cron_jobs['expire_build_artifacts_worker']['job_class'] = 'ExpireBuildArtifactsWorker'
diff --git a/spec/factories/ci/scheduled_triggers.rb b/spec/factories/ci/scheduled_triggers.rb
index c97b2d14bd1..f909e343bf2 100644
--- a/spec/factories/ci/scheduled_triggers.rb
+++ b/spec/factories/ci/scheduled_triggers.rb
@@ -1,8 +1,7 @@
FactoryGirl.define do
- factory :ci_scheduled_trigger, class: Ci::ScheduledTrigger do
+ factory :ci_trigger_schedule, class: Ci::TriggerSchedule do
project factory: :project
- owner factory: :user
- ref 'master'
+ trigger factory: :ci_trigger
trait :force_triggable do
next_run_at Time.now - 1.month
diff --git a/spec/models/ci/scheduled_trigger_spec.rb b/spec/models/ci/scheduled_trigger_spec.rb
deleted file mode 100644
index bb5e969fa44..00000000000
--- a/spec/models/ci/scheduled_trigger_spec.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-require 'spec_helper'
-
-describe Ci::ScheduledTrigger, models: true do
-
- describe 'associations' do
- it { is_expected.to belong_to(:project) }
- it { is_expected.to belong_to(:owner) }
- end
-
- describe '#schedule_next_run!' do
- subject { scheduled_trigger.schedule_next_run! }
-
- let(:scheduled_trigger) { create(:ci_scheduled_trigger, :cron_nightly_build, next_run_at: nil) }
-
- it 'updates next_run_at' do
- is_expected.not_to be_nil
- end
- end
-
- describe '#update_last_run!' do
- subject { scheduled_trigger.update_last_run! }
-
- let(:scheduled_trigger) { create(:ci_scheduled_trigger, :cron_nightly_build, last_run_at: nil) }
-
- it 'updates last_run_at' do
- is_expected.not_to be_nil
- end
- end
-end
diff --git a/spec/models/ci/trigger_schedule_spec.rb b/spec/models/ci/trigger_schedule_spec.rb
new file mode 100644
index 00000000000..14b8530a65b
--- /dev/null
+++ b/spec/models/ci/trigger_schedule_spec.rb
@@ -0,0 +1,29 @@
+require 'spec_helper'
+
+describe Ci::TriggerSchedule, models: true do
+
+ describe 'associations' do
+ it { is_expected.to belong_to(:project) }
+ it { is_expected.to belong_to(:trigger) }
+ end
+
+ describe '#schedule_next_run!' do
+ subject { trigger_schedule.schedule_next_run! }
+
+ let(:trigger_schedule) { create(:ci_trigger_schedule, :cron_nightly_build, next_run_at: nil) }
+
+ it 'updates next_run_at' do
+ is_expected.not_to be_nil
+ end
+ end
+
+ # describe '#update_last_run!' do
+ # subject { scheduled_trigger.update_last_run! }
+
+ # let(:scheduled_trigger) { create(:ci_scheduled_trigger, :cron_nightly_build, last_run_at: nil) }
+
+ # it 'updates last_run_at' do
+ # is_expected.not_to be_nil
+ # end
+ # end
+end
diff --git a/spec/models/ci/trigger_spec.rb b/spec/models/ci/trigger_spec.rb
index 1bcb673cb16..42170de0180 100644
--- a/spec/models/ci/trigger_spec.rb
+++ b/spec/models/ci/trigger_spec.rb
@@ -7,6 +7,7 @@ describe Ci::Trigger, models: true do
it { is_expected.to belong_to(:project) }
it { is_expected.to belong_to(:owner) }
it { is_expected.to have_many(:trigger_requests) }
+ it { is_expected.to have_one(:trigger_schedule) }
end
describe 'before_validation' do
diff --git a/spec/workers/scheduled_trigger_worker_spec.rb b/spec/workers/trigger_schedule_worker_spec.rb
index ffcb27602a1..6c7521e8339 100644
--- a/spec/workers/scheduled_trigger_worker_spec.rb
+++ b/spec/workers/trigger_schedule_worker_spec.rb
@@ -1,6 +1,6 @@
require 'spec_helper'
-describe ScheduledTriggerWorker do
+describe TriggerScheduleWorker do
let(:worker) { described_class.new }
before do
@@ -9,7 +9,7 @@ describe ScheduledTriggerWorker do
context 'when there is a scheduled trigger within next_run_at' do
before do
- create(:ci_scheduled_trigger, :cron_nightly_build, :force_triggable)
+ create(:ci_trigger_schedule, :cron_nightly_build, :force_triggable)
worker.perform
end
@@ -18,13 +18,13 @@ describe ScheduledTriggerWorker do
end
it 'schedules next_run_at' do
- scheduled_trigger2 = create(:ci_scheduled_trigger, :cron_nightly_build)
- expect(Ci::ScheduledTrigger.last.next_run_at).to eq(scheduled_trigger2.next_run_at)
+ trigger_schedule2 = create(:ci_trigger_schedule, :cron_nightly_build)
+ expect(Ci::TriggerSchedule.last.next_run_at).to eq(trigger_schedule2.next_run_at)
end
end
context 'when there are no scheduled triggers within next_run_at' do
- let!(:scheduled_trigger) { create(:ci_scheduled_trigger, :cron_nightly_build) }
+ let!(:trigger_schedule) { create(:ci_trigger_schedule, :cron_nightly_build) }
before do
worker.perform
@@ -35,12 +35,12 @@ describe ScheduledTriggerWorker do
end
it 'do not reschedule next_run_at' do
- expect(Ci::ScheduledTrigger.last.next_run_at).to eq(scheduled_trigger.next_run_at)
+ expect(Ci::TriggerSchedule.last.next_run_at).to eq(trigger_schedule.next_run_at)
end
end
context 'when next_run_at is nil' do
- let!(:scheduled_trigger) { create(:ci_scheduled_trigger, :cron_nightly_build, next_run_at: nil) }
+ let!(:trigger_schedule) { create(:ci_trigger_schedule, :cron_nightly_build, next_run_at: nil) }
before do
worker.perform
@@ -51,7 +51,7 @@ describe ScheduledTriggerWorker do
end
it 'do not reschedule next_run_at' do
- expect(Ci::ScheduledTrigger.last.next_run_at).to eq(scheduled_trigger.next_run_at)
+ expect(Ci::TriggerSchedule.last.next_run_at).to eq(trigger_schedule.next_run_at)
end
end
end