Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
1b0b8b9c
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
1b0b8b9c
编写于
2月 28, 2018
作者:
T
Tomasz Maczukin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Change timeout_source to enum
上级
8ffa4809
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
35 addition
and
16 deletion
+35
-16
app/models/ci/build.rb
app/models/ci/build.rb
+11
-4
app/presenters/ci/build_presenter.rb
app/presenters/ci/build_presenter.rb
+14
-0
app/serializers/build_details_entity.rb
app/serializers/build_details_entity.rb
+1
-1
db/migrate/20180221022556_add_used_timeout_and_timeout_source_columns_to_ci_builds.rb
...d_used_timeout_and_timeout_source_columns_to_ci_builds.rb
+1
-1
db/schema.rb
db/schema.rb
+1
-1
spec/models/ci/build_spec.rb
spec/models/ci/build_spec.rb
+7
-9
未找到文件。
app/models/ci/build.rb
浏览文件 @
1b0b8b9c
...
...
@@ -93,6 +93,12 @@ module Ci
chronic_duration_attr_reader
:used_timeout_human_readable
,
:used_timeout
enum
timeout_source:
{
unknown_timeout_source:
nil
,
project_timeout_source:
1
,
runner_timeout_source:
2
}
class
<<
self
# This is needed for url_for to work,
# as the controller is JobsController
...
...
@@ -123,10 +129,6 @@ module Ci
end
after_transition
pending: :running
do
|
build
|
build
.
used_timeout
=
build
.
timeout
build
.
timeout_source
=
build
.
timeout
<
build
.
project
.
build_timeout
?
'runner'
:
'project'
build
.
save!
build
.
run_after_commit
do
BuildHooksWorker
.
perform_async
(
id
)
end
...
...
@@ -160,6 +162,11 @@ module Ci
before_transition
any
=>
[
:running
]
do
|
build
|
build
.
validates_dependencies!
unless
Feature
.
enabled?
(
'ci_disable_validates_dependencies'
)
end
before_transition
pending: :running
do
|
build
|
build
.
used_timeout
=
build
.
timeout
build
.
timeout_source
=
build
.
timeout
<
build
.
project
.
build_timeout
?
:runner_timeout_source
:
:project_timeout_source
end
end
def
detailed_status
(
current_user
)
...
...
app/presenters/ci/build_presenter.rb
浏览文件 @
1b0b8b9c
module
Ci
class
BuildPresenter
<
Gitlab
::
View
::
Presenter
::
Delegated
TIMEOUT_SOURCES
=
{
unknown_timeout_source:
nil
,
project_timeout_source:
'project'
,
runner_timeout_source:
'runner'
}.
freeze
presents
:build
def
erased_by_user?
...
...
@@ -18,6 +25,13 @@ module Ci
end
end
def
timeout_source
return
unless
build
.
timeout_source?
TIMEOUT_SOURCES
[
build
.
timeout_source
.
to_sym
]
||
build
.
timeout_source
end
def
trigger_variables
return
[]
unless
trigger_request
...
...
app/serializers/build_details_entity.rb
浏览文件 @
1b0b8b9c
...
...
@@ -7,7 +7,7 @@ class BuildDetailsEntity < JobEntity
expose
:timeout
,
if:
->
(
*
)
{
!
build
.
used_timeout
.
nil?
}
do
|
build
|
{
value:
build
.
used_timeout_human_readable
,
source:
build
.
timeout_source
}
source:
build
.
present
.
timeout_source
}
end
expose
:erased_by
,
if:
->
(
*
)
{
build
.
erased?
},
using:
UserEntity
...
...
db/migrate/20180221022556_add_used_timeout_and_timeout_source_columns_to_ci_builds.rb
浏览文件 @
1b0b8b9c
...
...
@@ -5,6 +5,6 @@ class AddUsedTimeoutAndTimeoutSourceColumnsToCiBuilds < ActiveRecord::Migration
def
change
add_column
:ci_builds
,
:used_timeout
,
:integer
add_column
:ci_builds
,
:timeout_source
,
:
string
add_column
:ci_builds
,
:timeout_source
,
:
integer
end
end
db/schema.rb
浏览文件 @
1b0b8b9c
...
...
@@ -312,7 +312,7 @@ ActiveRecord::Schema.define(version: 20180327101207) do
t
.
boolean
"protected"
t
.
integer
"failure_reason"
t
.
integer
"used_timeout"
t
.
string
"timeout_source"
t
.
integer
"timeout_source"
end
add_index
"ci_builds"
,
[
"artifacts_expire_at"
],
name:
"index_ci_builds_on_artifacts_expire_at"
,
where:
"(artifacts_file <> ''::text)"
,
using: :btree
...
...
spec/models/ci/build_spec.rb
浏览文件 @
1b0b8b9c
...
...
@@ -2046,20 +2046,18 @@ describe Ci::Build do
end
shared_examples
'saves data on transition'
do
it
'saves used_timeout and timeout_source on transition'
do
expect
(
job
.
used_timeout
).
to
be_nil
expect
(
job
.
timeout_source
).
to
be_nil
job
.
run!
it
'saves used_timeout'
do
expect
{
job
.
run!
}.
to
change
{
job
.
reload
.
used_timeout
}.
from
(
nil
).
to
(
expected_timeout
)
end
expect
(
job
.
used_timeout
).
to
eq
(
expected_timeout
)
expect
(
job
.
timeout_source
).
to
eq
(
expected_timeout_source
)
it
'saves timeout_source'
do
expect
{
job
.
run!
}.
to
change
{
job
.
reload
.
timeout_source
}.
from
(
'unknown_timeout_source'
).
to
(
expected_timeout_source
)
end
end
context
'when runner timeout overrides project timeout'
do
let
(
:expected_timeout
)
{
900
}
let
(
:expected_timeout_source
)
{
'
Runner
'
}
let
(
:expected_timeout_source
)
{
'
runner_timeout_source
'
}
before
do
runner
.
maximum_job_timeout
=
900
...
...
@@ -2071,7 +2069,7 @@ describe Ci::Build do
context
"when runner timeout doesn't override project timeout"
do
let
(
:expected_timeout
)
{
1800
}
let
(
:expected_timeout_source
)
{
'
Project
'
}
let
(
:expected_timeout_source
)
{
'
project_timeout_source
'
}
before
do
runner
.
maximum_job_timeout
=
3600
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录