diff options
| author | Lin Jen-Shin <godfat@godfat.org> | 2016-10-14 11:31:10 +0000 |
|---|---|---|
| committer | Lin Jen-Shin <godfat@godfat.org> | 2016-10-14 11:31:10 +0000 |
| commit | dc1d269f67f63eab5f358306ce394b5831377bf7 (patch) | |
| tree | 2fb75d51a54d6b19e783c11cf12942d7a67cf8db /app/models/ci | |
| parent | b5f9d4c4bc48b252d3175432a3bb6fb1ca394af9 (diff) | |
| parent | ca3bef554b14ddd2a0d844cd64874885e3f4e90e (diff) | |
| download | gitlab-ce-dc1d269f67f63eab5f358306ce394b5831377bf7.tar.gz | |
Merge remote-tracking branch 'upstream/master' into pipeline-emails
* upstream/master: (237 commits)
Grapify boards API
Add test, fix merge error
Use local assigns to get the dropdown title
Updated issuable dropdown titles
Added safety check for formatted values
Minor style improvement
Fixed conflict and corrected teaspoon test
Rename method in test
Moved ci_status environments logic to new action ci_envrionments_status and set up frontend polling
Refactor ci_status on MergeRequestController
Fix indenting error in HAML
Show what time ago a MR was deployed
Fixed missing links
Fixed missing links
Refactor merge requests revisions
Add link to update docs for source installations
Grapify todos API
Link to review apps example from docs
fix grafana_configuration.md move link
Do not run before_script, artifacts, cache in trigger_docs job
...
Diffstat (limited to 'app/models/ci')
| -rw-r--r-- | app/models/ci/pipeline.rb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index bf2d861b86f..042b1c04054 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -3,6 +3,7 @@ module Ci extend Ci::Model include HasStatus include Importable + include AfterCommitQueue self.table_name = 'ci_commits' @@ -56,6 +57,10 @@ module Ci pipeline.finished_at = Time.now end + before_transition do |pipeline| + pipeline.update_duration + end + after_transition [:created, :pending] => :running do |pipeline| MergeRequest::Metrics.where(merge_request_id: pipeline.merge_requests.map(&:id)). update_all(latest_build_started_at: pipeline.started_at, latest_build_finished_at: nil) @@ -66,8 +71,8 @@ module Ci update_all(latest_build_finished_at: pipeline.finished_at) end - before_transition do |pipeline| - pipeline.update_duration + after_transition [:created, :pending, :running] => :success do |pipeline| + pipeline.run_after_commit { PipelineSuccessWorker.perform_async(id) } end after_transition do |pipeline, transition| @@ -292,9 +297,9 @@ module Ci # Merge requests for which the current pipeline is running against # the merge request's latest commit. def merge_requests - @merge_requests ||= - project.merge_requests.where(source_branch: ref). - select { |merge_request| merge_request.pipeline.try(:id) == id } + @merge_requests ||= project.merge_requests + .where(source_branch: self.ref) + .select { |merge_request| merge_request.pipeline.try(:id) == self.id } end def merge_requests_with_active_first |
