BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
fa6b9aca
Commit
fa6b9aca
authored
Sep 04, 2017
by
Shinya Maeda
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
trigger_variables should consider trigger_request existstance always
parent
3ae20381
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
54 additions
and
17 deletions
+54
-17
build.rb
app/models/ci/build.rb
+12
-2
build_presenter.rb
app/presenters/ci/build_presenter.rb
+0
-11
_sidebar.html.haml
app/views/projects/jobs/_sidebar.html.haml
+4
-4
build_spec.rb
spec/models/ci/build_spec.rb
+38
-0
No files found.
app/models/ci/build.rb
View file @
fa6b9aca
...
...
@@ -221,14 +221,24 @@ module Ci
variables
+=
user_variables
variables
+=
project
.
group
.
secret_variables_for
(
ref
,
project
).
map
(
&
:to_runner_variable
)
if
project
.
group
variables
+=
secret_variables
(
environment:
environment
)
variables
+=
trigger_request
.
user_variables
if
trigger_request
variables
+=
pipeline
.
variables
.
map
(
&
:to_runner_variable
)
variables
+=
trigger_variables
variables
+=
pipeline
.
pipeline_schedule
.
job_variables
if
pipeline
.
pipeline_schedule
variables
+=
persisted_environment_variables
if
environment
variables
end
def
trigger_variables
return
[]
unless
trigger_request
# or pipeline.trigger?
@trigger_variables
||=
if
pipeline
.
variables
.
any?
# If it's swtiched to Ci::PipelineVariables
pipeline
.
variables
.
map
(
&
:to_runner_variable
)
else
# else it's still using trigger_request.variables
trigger_request
.
user_variables
# Deprecated
end
end
def
merge_request
return
@merge_request
if
defined?
(
@merge_request
)
...
...
app/presenters/ci/build_presenter.rb
View file @
fa6b9aca
...
...
@@ -17,16 +17,5 @@ module Ci
"Job is redundant and is auto-canceled by Pipeline #
#{
auto_canceled_by_id
}
"
end
end
def
old_or_new_trigger_variables
return
@old_or_new_trigger_variables
if
defined?
(
@old_or_new_trigger_variables
)
if
build
.
pipeline
.
variables
.
any?
@old_or_new_trigger_variables
=
build
.
pipeline
.
variables
&
.
map
{
|
v
|
{
v
.
key
=>
v
.
value
}
}
&
.
reduce
({},
:merge
)
else
@old_or_new_trigger_variables
=
build
.
trigger_request
.
variables
end
end
end
end
app/views/projects/jobs/_sidebar.html.haml
View file @
fa6b9aca
...
...
@@ -46,14 +46,14 @@
%span
.build-light-text
Token:
#{
@build
.
trigger_request
.
trigger
.
short_token
}
-
if
@build
.
old_or_new_trigger_variables
-
if
@build
.
trigger_variables
.
any?
%p
%button
.btn.group.btn-group-justified.reveal-variables
Reveal Variables
%dl
.js-build-variables.trigger-build-variables.hide
-
@build
.
old_or_new_trigger_variables
.
each
do
|
key
,
valu
e
|
%dt
.js-build-variable.trigger-build-variable
=
key
%dd
.js-build-value.trigger-build-value
=
value
-
@build
.
trigger_variables
.
each
do
|
trigger_variabl
e
|
%dt
.js-build-variable.trigger-build-variable
=
trigger_variable
[
:key
]
%dd
.js-build-value.trigger-build-value
=
trigger_variable
[
:value
]
%div
{
class:
(
@build
.
pipeline
.
stages_count
>
1
?
"block"
:
"block-last"
)
}
%p
...
...
spec/models/ci/build_spec.rb
View file @
fa6b9aca
...
...
@@ -1690,6 +1690,44 @@ describe Ci::Build do
end
end
describe
'#trigger_variables'
do
let
(
:build
)
{
create
(
:ci_build
,
pipeline:
pipeline
,
trigger_request:
trigger_request
)
}
let
(
:trigger
)
{
create
(
:ci_trigger
,
project:
project
)
}
let
(
:trigger_request
)
{
create
(
:ci_trigger_request
,
pipeline:
pipeline
,
trigger:
trigger
)
}
subject
{
build
.
trigger_variables
}
it
{
is_expected
.
to
eq
(
true
)
}
context
'when variable is stored in ci_pipeline_variables'
do
let!
(
:pipeline_variable
)
{
create
(
:ci_pipeline_variable
,
pipeline:
pipeline
)
}
context
'when pipeline is triggered by trigger API'
do
it
'returns variables'
do
is_expected
.
to
eq
([
pipeline_variable
.
to_runner_variable
])
end
end
context
'when pipeline is not triggered by trigger API'
do
let
(
:build
)
{
create
(
:ci_build
,
pipeline:
pipeline
)
}
it
'does not return variables'
do
is_expected
.
to
eq
([])
end
end
end
context
'when variable is stored in ci_trigger_requests.variables'
do
before
do
trigger_request
.
update_attribute
(
:variables
,
{
'TRIGGER_KEY_1'
=>
'TRIGGER_VALUE_1'
}
)
end
it
'returns variables'
do
is_expected
.
to
eq
(
trigger_request
.
user_variables
)
end
end
end
describe
'state transition: any => [:pending]'
do
let
(
:build
)
{
create
(
:ci_build
,
:created
)
}
...
...
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