Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
b6e4e449
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,发现更多精彩内容 >>
提交
b6e4e449
编写于
3月 23, 2018
作者:
G
Grzegorz Bizon
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Integrate build seeds with variables expressions policy
上级
8a2bc9b4
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
29 addition
and
28 deletion
+29
-28
lib/gitlab/ci/build/policy/kubernetes.rb
lib/gitlab/ci/build/policy/kubernetes.rb
+1
-1
lib/gitlab/ci/build/policy/refs.rb
lib/gitlab/ci/build/policy/refs.rb
+1
-1
lib/gitlab/ci/build/policy/specification.rb
lib/gitlab/ci/build/policy/specification.rb
+1
-1
lib/gitlab/ci/build/policy/variables.rb
lib/gitlab/ci/build/policy/variables.rb
+2
-2
lib/gitlab/ci/pipeline/seed/build.rb
lib/gitlab/ci/pipeline/seed/build.rb
+10
-7
spec/lib/gitlab/ci/yaml_processor_spec.rb
spec/lib/gitlab/ci/yaml_processor_spec.rb
+0
-16
spec/models/ci/pipeline_spec.rb
spec/models/ci/pipeline_spec.rb
+14
-0
未找到文件。
lib/gitlab/ci/build/policy/kubernetes.rb
浏览文件 @
b6e4e449
...
...
@@ -9,7 +9,7 @@ module Gitlab
end
end
def
satisfied_by?
(
pipeline
,
_buil
d
=
nil
)
def
satisfied_by?
(
pipeline
,
see
d
=
nil
)
pipeline
.
has_kubernetes_active?
end
end
...
...
lib/gitlab/ci/build/policy/refs.rb
浏览文件 @
b6e4e449
...
...
@@ -7,7 +7,7 @@ module Gitlab
@patterns
=
Array
(
refs
)
end
def
satisfied_by?
(
pipeline
,
_buil
d
=
nil
)
def
satisfied_by?
(
pipeline
,
see
d
=
nil
)
@patterns
.
any?
do
|
pattern
|
pattern
,
path
=
pattern
.
split
(
'@'
,
2
)
...
...
lib/gitlab/ci/build/policy/specification.rb
浏览文件 @
b6e4e449
...
...
@@ -15,7 +15,7 @@ module Gitlab
@spec
=
spec
end
def
satisfied_by?
(
pipeline
,
buil
d
=
nil
)
def
satisfied_by?
(
pipeline
,
see
d
=
nil
)
raise
NotImplementedError
end
end
...
...
lib/gitlab/ci/build/policy/variables.rb
浏览文件 @
b6e4e449
...
...
@@ -7,9 +7,9 @@ module Gitlab
@expressions
=
Array
(
expressions
)
end
def
satisfied_by?
(
pipeline
,
buil
d
)
def
satisfied_by?
(
pipeline
,
see
d
)
variables
=
Gitlab
::
Ci
::
Variables
::
Collection
.
new
(
build
.
simple_variables
)
.
new
(
seed
.
to_resource
.
simple_variables
)
.
to_hash
statements
=
@expressions
.
map
do
|
statement
|
...
...
lib/gitlab/ci/pipeline/seed/build.rb
浏览文件 @
b6e4e449
...
...
@@ -11,21 +11,24 @@ module Gitlab
@pipeline
=
pipeline
@attributes
=
attributes
@only
=
attributes
.
delete
(
:only
)
@except
=
attributes
.
delete
(
:except
)
@only
=
Gitlab
::
Ci
::
Build
::
Policy
.
fabricate
(
attributes
.
delete
(
:only
))
@except
=
Gitlab
::
Ci
::
Build
::
Policy
.
fabricate
(
attributes
.
delete
(
:except
))
end
# TODO, use pipeline.user ?
#
def
user
=
(
current_user
)
@attributes
.
merge!
(
user:
current_user
)
end
def
included?
# TODO specs for passing a seed object for lazy resource evaluation
#
strong_memoize
(
:inclusion
)
do
only_specs
=
Gitlab
::
Ci
::
Build
::
Policy
.
fabricate
(
@only
)
except_specs
=
Gitlab
::
Ci
::
Build
::
Policy
.
fabricate
(
@except
)
only_specs
.
all?
{
|
spec
|
spec
.
satisfied_by?
(
@pipeline
)
}
&&
except_specs
.
none?
{
|
spec
|
spec
.
satisfied_by?
(
@pipeline
)
}
@only
.
all?
{
|
spec
|
spec
.
satisfied_by?
(
@pipeline
,
self
)
}
&&
@except
.
none?
{
|
spec
|
spec
.
satisfied_by?
(
@pipeline
,
self
)
}
end
end
...
...
spec/lib/gitlab/ci/yaml_processor_spec.rb
浏览文件 @
b6e4e449
...
...
@@ -182,22 +182,6 @@ module Gitlab
it
'returns stages seed attributes'
do
expect
(
subject
.
stages_attributes
).
to
eq
attributes
end
context
'when variables policy is specified'
do
let
(
:config
)
do
YAML
.
dump
(
unit:
{
script:
'minitest'
,
only:
{
variables:
[
'$CI_PIPELINE_SOURCE'
]
}
},
feature:
{
script:
'spinach'
,
only:
{
variables:
[
'$UNDEFINED'
]
}
})
end
let
(
:pipeline
)
{
create
(
:ci_empty_pipeline
)
}
it
'returns stage seeds only when variables expression is truthy'
do
seeds
=
subject
.
stage_seeds
(
pipeline
)
expect
(
seeds
.
size
).
to
eq
1
expect
(
seeds
.
first
.
builds
.
dig
(
0
,
:name
)).
to
eq
'unit'
end
end
end
describe
'only / except policies validations'
do
...
...
spec/models/ci/pipeline_spec.rb
浏览文件 @
b6e4e449
...
...
@@ -346,6 +346,20 @@ describe Ci::Pipeline, :mailer do
end
end
end
context
'when variables policy is specified'
do
let
(
:config
)
do
{
unit:
{
script:
'minitest'
,
only:
{
variables:
[
'$CI_PIPELINE_SOURCE'
]
}
},
feature:
{
script:
'spinach'
,
only:
{
variables:
[
'$UNDEFINED'
]
}
}
}
end
it
'returns stage seeds only when variables expression is truthy'
do
seeds
=
pipeline
.
stage_seeds
expect
(
seeds
.
size
).
to
eq
1
expect
(
seeds
.
dig
(
0
,
0
,
:name
)).
to
eq
'unit'
end
end
end
describe
'#seeds_size'
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录