summaryrefslogtreecommitdiff
path: root/lib/ci/scheduler.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ci/scheduler.rb')
-rw-r--r--lib/ci/scheduler.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/ci/scheduler.rb b/lib/ci/scheduler.rb
new file mode 100644
index 00000000000..ee0958f4be1
--- /dev/null
+++ b/lib/ci/scheduler.rb
@@ -0,0 +1,16 @@
+module Ci
+ class Scheduler
+ def perform
+ projects = Ci::Project.where(always_build: true).all
+ projects.each do |project|
+ last_commit = project.commits.last
+ next unless last_commit && last_commit.last_build
+
+ interval = project.polling_interval
+ if (last_commit.last_build.created_at + interval.hours) < Time.now
+ last_commit.retry
+ end
+ end
+ end
+ end
+end