Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
27f981b2
Commit
27f981b2
authored
Apr 04, 2017
by
Shinya Maeda
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve real_next_run. Improve triggers_helper_spec.
parent
f6be8c04
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
18 deletions
+25
-18
app/helpers/triggers_helper.rb
app/helpers/triggers_helper.rb
+5
-11
spec/helpers/triggers_helper_spec.rb
spec/helpers/triggers_helper_spec.rb
+20
-7
No files found.
app/helpers/triggers_helper.rb
View file @
27f981b2
...
@@ -11,16 +11,10 @@ module TriggersHelper
...
@@ -11,16 +11,10 @@ module TriggersHelper
"
#{
Settings
.
gitlab
.
url
}
/api/v3/projects/
#{
service
.
project_id
}
/services/
#{
service
.
to_param
}
/trigger"
"
#{
Settings
.
gitlab
.
url
}
/api/v3/projects/
#{
service
.
project_id
}
/services/
#{
service
.
to_param
}
/trigger"
end
end
def
real_next_run
(
trigger_schedule
,
worker_cron:
nil
,
worker_time_zone:
nil
)
def
real_next_run
(
trigger_schedule
,
worker_cron
=
Settings
.
cron_jobs
[
'trigger_schedule_worker'
][
'cron'
]
unless
worker_cron
.
present?
worker_cron:
Settings
.
cron_jobs
[
'trigger_schedule_worker'
][
'cron'
],
worker_time_zone
=
Time
.
zone
.
name
unless
worker_time_zone
.
present?
worker_time_zone:
Time
.
zone
.
name
)
Ci
::
CronParser
.
new
(
worker_cron
,
worker_time_zone
)
worker_next_time
=
Ci
::
CronParser
.
new
(
worker_cron
,
worker_time_zone
).
next_time_from
(
Time
.
now
)
.
next_time_from
(
trigger_schedule
.
next_run_at
)
if
trigger_schedule
.
next_run_at
>
worker_next_time
trigger_schedule
.
next_run_at
else
worker_next_time
end
end
end
end
end
spec/helpers/triggers_helper_spec.rb
View file @
27f981b2
...
@@ -4,23 +4,36 @@ describe TriggersHelper do
...
@@ -4,23 +4,36 @@ describe TriggersHelper do
describe
'#real_next_run'
do
describe
'#real_next_run'
do
let
(
:trigger_schedule
)
{
create
(
:ci_trigger_schedule
,
cron:
user_cron
,
cron_time_zone:
'UTC'
)
}
let
(
:trigger_schedule
)
{
create
(
:ci_trigger_schedule
,
cron:
user_cron
,
cron_time_zone:
'UTC'
)
}
subject
{
helper
.
real_next_run
(
trigger_schedule
,
worker_cron:
worker_cron
,
worker_time_zone:
'UTC'
)
}
subject
{
helper
.
real_next_run
(
trigger_schedule
,
arguments
)
}
context
'when next_run_at > worker_next_time'
do
context
'when next_run_at > worker_next_time'
do
let
(
:
worker_cron
)
{
'0 0 1 1 *'
}
# every 00:00, January 1st
let
(
:
arguments
)
{
{
worker_cron:
'0 0 1 1 *'
,
worker_time_zone:
'UTC'
}
}
# every 00:00, January 1st
let
(
:user_cron
)
{
'1 0 1 1 *'
}
# every 00:01, January 1st
let
(
:user_cron
)
{
'1 0 1 1 *'
}
# every 00:01, January 1st
it
'returns next_run_at'
do
it
'returns nearest worker_next_time from next_run_at'
do
is_expected
.
to
eq
(
trigger_schedule
.
next_run_at
)
is_expected
.
to
eq
(
Ci
::
CronParser
.
new
(
arguments
[
:worker_cron
],
arguments
[
:worker_time_zone
])
.
next_time_from
(
trigger_schedule
.
next_run_at
))
end
end
end
end
context
'when worker_next_time > next_run_at'
do
context
'when worker_next_time > next_run_at'
do
let
(
:
worker_cron
)
{
'1 0 1 1 *'
}
# every 00:01, January 1st
let
(
:
arguments
)
{
{
worker_cron:
'1 0 1 1 *'
,
worker_time_zone:
'UTC'
}
}
# every 00:01, January 1st
let
(
:user_cron
)
{
'0 0 1 1 *'
}
# every 00:00, January 1st
let
(
:user_cron
)
{
'0 0 1 1 *'
}
# every 00:00, January 1st
it
'returns worker_next_time'
do
it
'returns nearest worker_next_time from next_run_at'
do
is_expected
.
to
eq
(
Ci
::
CronParser
.
new
(
worker_cron
,
'UTC'
).
next_time_from
(
Time
.
now
))
is_expected
.
to
eq
(
Ci
::
CronParser
.
new
(
arguments
[
:worker_cron
],
arguments
[
:worker_time_zone
])
.
next_time_from
(
trigger_schedule
.
next_run_at
))
end
end
context
'when worker_cron and worker_time_zone are ommited'
do
let
(
:arguments
)
{
{}
}
let
(
:user_cron
)
{
'* * * * *'
}
# every minutes
it
'returns nearest worker_next_time from next_run_at by server configuration'
do
is_expected
.
to
eq
(
Ci
::
CronParser
.
new
(
Settings
.
cron_jobs
[
'trigger_schedule_worker'
][
'cron'
],
Time
.
zone
.
name
)
.
next_time_from
(
trigger_schedule
.
next_run_at
))
end
end
end
end
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment