Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
9c6c5c79
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9c6c5c79
编写于
10月 14, 2016
作者:
K
Kamil Trzcinski
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add Pipeline metrics worker
上级
cb8654e8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
4 deletion
+22
-4
CHANGELOG.md
CHANGELOG.md
+1
-0
app/models/ci/pipeline.rb
app/models/ci/pipeline.rb
+6
-4
app/workers/pipeline_metrics_worker.rb
app/workers/pipeline_metrics_worker.rb
+15
-0
未找到文件。
CHANGELOG.md
浏览文件 @
9c6c5c79
...
...
@@ -21,6 +21,7 @@ Please view this file on the master branch, on stable branches it's out of date.
-
Change user & group landing page routing from /u/:username to /:username
-
Prevent running GfmAutocomplete setup for each diff note !6569
-
Added documentation for .gitattributes files
-
Move Pipeline Metrics to separate worker
-
AbstractReferenceFilter caches project_refs on RequestStore when active
-
Replaced the check sign to arrow in the show build view. !6501
-
Add a /wip slash command to toggle the Work In Progress status of a merge request. !6259 (tbalthazar)
...
...
app/models/ci/pipeline.rb
浏览文件 @
9c6c5c79
...
...
@@ -49,6 +49,10 @@ module Ci
transition
any
=>
:canceled
end
# IMPORTANT
# Do not add any operations to this state_machine
# Create a separate worker for each new operation
before_transition
[
:created
,
:pending
]
=>
:running
do
|
pipeline
|
pipeline
.
started_at
=
Time
.
now
end
...
...
@@ -62,13 +66,11 @@ module Ci
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
)
pipeline
.
run_after_commit
{
PipelineMetricsWorker
.
perform_async
(
id
)
}
end
after_transition
any
=>
[
:success
]
do
|
pipeline
|
MergeRequest
::
Metrics
.
where
(
merge_request_id:
pipeline
.
merge_requests
.
map
(
&
:id
)).
update_all
(
latest_build_finished_at:
pipeline
.
finished_at
)
pipeline
.
run_after_commit
{
PipelineMetricsWorker
.
perform_async
(
id
)
}
end
after_transition
[
:created
,
:pending
,
:running
]
=>
:success
do
|
pipeline
|
...
...
app/workers/pipeline_metrics_worker.rb
0 → 100644
浏览文件 @
9c6c5c79
class
PipelineMetricsWorker
include
Sidekiq
::
Worker
sidekiq_options
queue: :default
def
perform
(
pipeline_id
)
Ci
::
Pipeline
.
find_by
(
id:
pipeline_id
).
try
do
|
pipeline
|
merge_requests
=
pipeline
.
merge_requests
.
map
(
&
:id
)
metrics
=
MergeRequest
::
Metrics
.
where
(
merge_request_id:
merge_requests
)
metrics
.
update_all
(
latest_build_started_at:
pipeline
.
started_at
)
if
pipeline
.
active?
metrics
.
update_all
(
latest_build_finished_at:
pipeline
.
finished_at
)
if
pipeline
.
success?
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录