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
ae24b257
Commit
ae24b257
authored
Apr 13, 2016
by
Kamil Trzcinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Simplify state update of Ci::Commit object
parent
3d38e461
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
61 deletions
+11
-61
app/models/ci/commit.rb
app/models/ci/commit.rb
+11
-61
No files found.
app/models/ci/commit.rb
View file @
ae24b257
...
...
@@ -29,16 +29,8 @@ module Ci
validates_presence_of
:sha
validate
:valid_commit_sha
# Make sure that status is saved
before_save
:status
before_save
:started_at
before_save
:finished_at
before_save
:duration
# Invalidate object and save if when touched
after_touch
:reload
after_touch
:invalidate
after_touch
:save
after_touch
:update_state
def
self
.
truncate_sha
(
sha
)
sha
[
0
...
8
]
...
...
@@ -94,13 +86,6 @@ module Ci
end
end
def
invalidate
write_attribute
(
:status
,
nil
)
write_attribute
(
:started_at
,
nil
)
write_attribute
(
:finished_at
,
nil
)
write_attribute
(
:duration
,
nil
)
end
def
create_builds
(
user
,
trigger_request
=
nil
)
return
unless
config_processor
config_processor
.
stages
.
any?
do
|
stage
|
...
...
@@ -137,22 +122,6 @@ module Ci
@retried
||=
(
statuses
.
order
(
id: :desc
)
-
statuses
.
latest
)
end
def
status
read_attribute
(
:status
)
||
update_status
end
def
duration
read_attribute
(
:duration
)
||
update_duration
end
def
started_at
read_attribute
(
:started_at
)
||
update_started_at
end
def
finished_at
read_attribute
(
:finished_at
)
||
update_finished_at
end
def
coverage
coverage_array
=
latest
.
map
(
&
:coverage
).
compact
if
coverage_array
.
size
>=
1
...
...
@@ -188,45 +157,26 @@ module Ci
private
def
update_status
self
.
status
=
if
yaml_errors
.
present?
'failed'
else
latest
.
status
||
'skipped'
end
end
def
update_started_at
self
.
started_at
=
statuses
.
minimum
(
:started_at
)
end
def
update_finished_at
self
.
finished_at
=
statuses
.
maximum
(
:finished_at
)
end
def
update_duration
def
update_state
reload
self
.
status
=
if
yaml_errors
.
present?
'failed'
else
latest
.
status
end
self
.
started_at
=
statuses
.
minimum
(
:started_at
)
self
.
finished_at
=
statuses
.
maximum
(
:finished_at
)
self
.
duration
=
begin
duration_array
=
latest
.
map
(
&
:duration
).
compact
duration_array
.
reduce
(:
+
).
to_i
end
end
def
update_statuses
update_status
update_started_at
update_finished_at
update_duration
save
end
def
save_yaml_error
(
error
)
return
if
self
.
yaml_errors?
self
.
yaml_errors
=
error
update_status
save
update_state
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