Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
b94db067
Commit
b94db067
authored
6 years ago
by
Grzegorz Bizon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use variables collection as build predefined variables
parent
5ed8286e
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
42 additions
and
28 deletions
+42
-28
app/models/ci/build.rb
app/models/ci/build.rb
+18
-16
app/models/concerns/has_variable.rb
app/models/concerns/has_variable.rb
+5
-1
app/models/project.rb
app/models/project.rb
+11
-9
lib/gitlab/ci/variables/collection.rb
lib/gitlab/ci/variables/collection.rb
+5
-1
lib/gitlab/ci/variables/collection/item.rb
lib/gitlab/ci/variables/collection/item.rb
+3
-1
No files found.
app/models/ci/build.rb
View file @
b94db067
...
...
@@ -252,23 +252,25 @@ module Ci
# All variables, including those dependent on environment, which could
# contain unexpanded variables.
def
variables
(
environment:
persisted_environment
)
variables
=
predefined_variables
variables
+=
project
.
predefined_variables
variables
+=
pipeline
.
predefined_variables
variables
+=
runner
.
predefined_variables
if
runner
variables
+=
project
.
container_registry_variables
variables
+=
project
.
deployment_variables
if
has_environment?
variables
+=
project
.
auto_devops_variables
variables
+=
yaml_variables
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
+=
pipeline
.
pipeline_schedule
.
job_variables
if
pipeline
.
pipeline_schedule
variables
+=
persisted_environment_variables
if
environment
collection
=
Gitlab
::
Ci
::
Variables
::
Collection
.
new
.
tap
do
|
variables
|
variables
.
concat
(
predefined_variables
)
variables
.
concat
(
project
.
predefined_variables
)
variables
.
concat
(
pipeline
.
predefined_variables
)
variables
.
concat
(
runner
.
predefined_variables
)
if
runner
variables
.
concat
(
project
.
container_registry_variables
)
variables
.
concat
(
project
.
deployment_variables
)
if
has_environment?
variables
.
concat
(
project
.
auto_devops_variables
)
variables
.
concat
(
yaml_variables
)
variables
.
concat
(
user_variables
)
variables
.
concat
(
project
.
group
.
secret_variables_for
(
ref
,
project
).
map
(
&
:to_runner_variable
))
if
project
.
group
variables
.
concat
(
secret_variables
(
environment:
environment
))
variables
.
concat
(
trigger_request
.
user_variables
)
if
trigger_request
variables
.
concat
(
pipeline
.
variables
)
variables
.
concat
(
pipeline
.
pipeline_schedule
.
job_variables
)
if
pipeline
.
pipeline_schedule
variables
.
concat
(
persisted_environment_variables
)
if
environment
end
variables
collection
.
to_runner_
variables
end
def
features
...
...
This diff is collapsed.
Click to expand it.
app/models/concerns/has_variable.rb
View file @
b94db067
...
...
@@ -20,8 +20,12 @@ module HasVariable
super
(
new_key
.
to_s
.
strip
)
end
def
to_
runner_variable
def
to_
hash
{
key:
key
,
value:
value
,
public:
false
}
end
def
to_runner_variable
to_hash
end
end
end
This diff is collapsed.
Click to expand it.
app/models/project.rb
View file @
b94db067
...
...
@@ -1571,15 +1571,17 @@ class Project < ActiveRecord::Base
end
def
predefined_variables
[
{
key:
'CI_PROJECT_ID'
,
value:
id
.
to_s
,
public:
true
},
{
key:
'CI_PROJECT_NAME'
,
value:
path
,
public:
true
},
{
key:
'CI_PROJECT_PATH'
,
value:
full_path
,
public:
true
},
{
key:
'CI_PROJECT_PATH_SLUG'
,
value:
full_path_slug
,
public:
true
},
{
key:
'CI_PROJECT_NAMESPACE'
,
value:
namespace
.
full_path
,
public:
true
},
{
key:
'CI_PROJECT_URL'
,
value:
web_url
,
public:
true
},
{
key:
'CI_PROJECT_VISIBILITY'
,
value:
Gitlab
::
VisibilityLevel
.
string_level
(
visibility_level
),
public:
true
}
]
visibility
=
Gitlab
::
VisibilityLevel
.
string_level
(
visibility_level
)
Gitlab
::
Ci
::
Variables
::
Collection
.
new
.
tap
do
|
variables
|
variables
.
append
(
key:
'CI_PROJECT_ID'
,
value:
id
.
to_s
,
public:
true
)
variables
.
append
(
key:
'CI_PROJECT_NAME'
,
value:
path
,
public:
true
)
variables
.
append
(
key:
'CI_PROJECT_PATH'
,
value:
full_path
,
public:
true
)
variables
.
append
(
key:
'CI_PROJECT_PATH_SLUG'
,
value:
full_path_slug
,
public:
true
)
variables
.
append
(
key:
'CI_PROJECT_NAMESPACE'
,
value:
namespace
.
full_path
,
public:
true
)
variables
.
append
(
key:
'CI_PROJECT_URL'
,
value:
web_url
,
public:
true
)
variables
.
append
(
key:
'CI_PROJECT_VISIBILITY'
,
value:
visibility
,
public:
true
)
end
end
def
container_registry_variables
...
...
This diff is collapsed.
Click to expand it.
lib/gitlab/ci/variables/collection.rb
View file @
b94db067
...
...
@@ -7,13 +7,17 @@ module Gitlab
def
initialize
(
variables
=
[])
@variables
=
[]
variables
.
each
{
|
variable
|
append
(
variable
)
}
variables
.
each
{
|
variable
|
self
.
append
(
variable
)
}
end
def
append
(
resource
)
@variables
.
append
(
Collection
::
Item
.
fabricate
(
resource
))
end
def
concat
(
resources
)
resources
.
each
{
|
variable
|
self
.
append
(
variable
)
}
end
def
each
@variables
.
each
{
|
variable
|
yield
variable
}
end
...
...
This diff is collapsed.
Click to expand it.
lib/gitlab/ci/variables/collection/item.rb
View file @
b94db067
...
...
@@ -33,10 +33,12 @@ module Gitlab
self
.
new
(
resource
)
when
::
Ci
::
Variable
self
.
new
(
resource
.
to_hash
)
when
::
Ci
::
PipelineVariable
self
.
new
(
resource
.
to_hash
)
when
self
resource
.
dup
else
raise
ArgumentError
,
'Unknown CI/CD variable resource!'
raise
ArgumentError
,
"Unknown `
#{
resource
.
class
}
` variable resource!"
end
end
end
...
...
This diff is collapsed.
Click to expand it.
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