Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
GitLab
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
projects.thm.de
GitLab
Commits
f06daa26
Commit
f06daa26
authored
May 31, 2017
by
Kamil Trzciński
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'rename-builds-controller' into 'master'
Rename BuildsController to JobsController Closes #30699 See merge request !11407
parents
87e761da
61227393
Changes
69
Hide whitespace changes
Inline
Side-by-side
Showing
69 changed files
with
637 additions
and
337 deletions
+637
-337
app/assets/javascripts/dispatcher.js
app/assets/javascripts/dispatcher.js
+1
-1
app/controllers/admin/jobs_controller.rb
app/controllers/admin/jobs_controller.rb
+2
-2
app/controllers/projects/artifacts_controller.rb
app/controllers/projects/artifacts_controller.rb
+2
-2
app/controllers/projects/build_artifacts_controller.rb
app/controllers/projects/build_artifacts_controller.rb
+55
-0
app/controllers/projects/builds_controller.rb
app/controllers/projects/builds_controller.rb
+6
-116
app/controllers/projects/jobs_controller.rb
app/controllers/projects/jobs_controller.rb
+131
-0
app/helpers/blob_helper.rb
app/helpers/blob_helper.rb
+1
-1
app/helpers/builds_helper.rb
app/helpers/builds_helper.rb
+4
-4
app/helpers/gitlab_routing_helper.rb
app/helpers/gitlab_routing_helper.rb
+8
-8
app/models/ci/build.rb
app/models/ci/build.rb
+6
-0
app/serializers/analytics_build_entity.rb
app/serializers/analytics_build_entity.rb
+1
-1
app/serializers/build_action_entity.rb
app/serializers/build_action_entity.rb
+1
-1
app/serializers/build_artifact_entity.rb
app/serializers/build_artifact_entity.rb
+1
-1
app/serializers/build_entity.rb
app/serializers/build_entity.rb
+3
-3
app/views/admin/dashboard/_head.html.haml
app/views/admin/dashboard/_head.html.haml
+1
-1
app/views/admin/jobs/index.html.haml
app/views/admin/jobs/index.html.haml
+3
-3
app/views/admin/runners/show.html.haml
app/views/admin/runners/show.html.haml
+1
-1
app/views/layouts/nav/_project.html.haml
app/views/layouts/nav/_project.html.haml
+1
-1
app/views/notify/links/ci/builds/_build.html.haml
app/views/notify/links/ci/builds/_build.html.haml
+1
-1
app/views/notify/links/ci/builds/_build.text.erb
app/views/notify/links/ci/builds/_build.text.erb
+1
-1
app/views/projects/artifacts/_tree_directory.html.haml
app/views/projects/artifacts/_tree_directory.html.haml
+1
-1
app/views/projects/artifacts/_tree_file.html.haml
app/views/projects/artifacts/_tree_file.html.haml
+1
-1
app/views/projects/artifacts/browse.html.haml
app/views/projects/artifacts/browse.html.haml
+4
-4
app/views/projects/artifacts/file.html.haml
app/views/projects/artifacts/file.html.haml
+4
-4
app/views/projects/ci/builds/_build.html.haml
app/views/projects/ci/builds/_build.html.haml
+5
-5
app/views/projects/jobs/_header.html.haml
app/views/projects/jobs/_header.html.haml
+3
-3
app/views/projects/jobs/_sidebar.html.haml
app/views/projects/jobs/_sidebar.html.haml
+6
-6
app/views/projects/jobs/_table.html.haml
app/views/projects/jobs/_table.html.haml
+0
-0
app/views/projects/jobs/_user.html.haml
app/views/projects/jobs/_user.html.haml
+0
-0
app/views/projects/jobs/index.html.haml
app/views/projects/jobs/index.html.haml
+2
-2
app/views/projects/jobs/show.html.haml
app/views/projects/jobs/show.html.haml
+3
-3
app/views/projects/pipelines/_head.html.haml
app/views/projects/pipelines/_head.html.haml
+1
-1
app/views/projects/pipelines/_with_tabs.html.haml
app/views/projects/pipelines/_with_tabs.html.haml
+1
-1
changelogs/unreleased/rename-builds-controller.yml
changelogs/unreleased/rename-builds-controller.yml
+4
-0
config/initializers/relative_naming_ci_namespace.rb
config/initializers/relative_naming_ci_namespace.rb
+1
-1
config/routes/admin.rb
config/routes/admin.rb
+1
-1
config/routes/project.rb
config/routes/project.rb
+30
-25
features/steps/shared/builds.rb
features/steps/shared/builds.rb
+3
-3
lib/gitlab/ci/status/build/cancelable.rb
lib/gitlab/ci/status/build/cancelable.rb
+1
-1
lib/gitlab/ci/status/build/common.rb
lib/gitlab/ci/status/build/common.rb
+1
-1
lib/gitlab/ci/status/build/play.rb
lib/gitlab/ci/status/build/play.rb
+1
-1
lib/gitlab/ci/status/build/retryable.rb
lib/gitlab/ci/status/build/retryable.rb
+1
-1
lib/gitlab/ci/status/build/stop.rb
lib/gitlab/ci/status/build/stop.rb
+1
-1
lib/gitlab/etag_caching/router.rb
lib/gitlab/etag_caching/router.rb
+1
-1
lib/gitlab/path_regex.rb
lib/gitlab/path_regex.rb
+1
-0
lib/gitlab/routes/legacy_builds.rb
lib/gitlab/routes/legacy_builds.rb
+36
-0
spec/controllers/projects/artifacts_controller_spec.rb
spec/controllers/projects/artifacts_controller_spec.rb
+24
-24
spec/controllers/projects/environments_controller_spec.rb
spec/controllers/projects/environments_controller_spec.rb
+2
-2
spec/controllers/projects/jobs_controller_spec.rb
spec/controllers/projects/jobs_controller_spec.rb
+7
-7
spec/features/admin/admin_builds_spec.rb
spec/features/admin/admin_builds_spec.rb
+8
-8
spec/features/merge_requests/mini_pipeline_graph_spec.rb
spec/features/merge_requests/mini_pipeline_graph_spec.rb
+1
-1
spec/features/projects/artifacts/browse_spec.rb
spec/features/projects/artifacts/browse_spec.rb
+25
-0
spec/features/projects/artifacts/download_spec.rb
spec/features/projects/artifacts/download_spec.rb
+61
-0
spec/features/projects/artifacts/file_spec.rb
spec/features/projects/artifacts/file_spec.rb
+19
-1
spec/features/projects/artifacts/raw_spec.rb
spec/features/projects/artifacts/raw_spec.rb
+25
-0
spec/features/projects/jobs_spec.rb
spec/features/projects/jobs_spec.rb
+94
-51
spec/features/security/project/internal_access_spec.rb
spec/features/security/project/internal_access_spec.rb
+3
-3
spec/features/security/project/private_access_spec.rb
spec/features/security/project/private_access_spec.rb
+3
-3
spec/features/security/project/public_access_spec.rb
spec/features/security/project/public_access_spec.rb
+3
-3
spec/javascripts/build_spec.js
spec/javascripts/build_spec.js
+1
-1
spec/javascripts/fixtures/jobs.rb
spec/javascripts/fixtures/jobs.rb
+1
-1
spec/javascripts/lib/utils/common_utils_spec.js
spec/javascripts/lib/utils/common_utils_spec.js
+1
-1
spec/lib/gitlab/ci/status/build/common_spec.rb
spec/lib/gitlab/ci/status/build/common_spec.rb
+1
-1
spec/serializers/build_action_entity_spec.rb
spec/serializers/build_action_entity_spec.rb
+6
-6
spec/serializers/build_artifact_entity_spec.rb
spec/serializers/build_artifact_entity_spec.rb
+5
-5
spec/views/ci/status/_badge.html.haml_spec.rb
spec/views/ci/status/_badge.html.haml_spec.rb
+1
-1
spec/views/projects/jobs/_build.html.haml_spec.rb
spec/views/projects/jobs/_build.html.haml_spec.rb
+1
-1
spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb
...ws/projects/jobs/_generic_commit_status.html.haml_spec.rb
+0
-0
spec/views/projects/jobs/show.html.haml_spec.rb
spec/views/projects/jobs/show.html.haml_spec.rb
+2
-2
No files found.
app/assets/javascripts/dispatcher.js
View file @
f06daa26
...
...
@@ -118,7 +118,7 @@ import ShortcutsBlob from './shortcuts_blob';
shortcut_handler
=
new
ShortcutsNavigation
();
new
UsersSelect
();
break
;
case
'
projects:
build
s:show
'
:
case
'
projects:
job
s:show
'
:
new
Build
();
break
;
case
'
projects:merge_requests:index
'
:
...
...
app/controllers/admin/
build
s_controller.rb
→
app/controllers/admin/
job
s_controller.rb
View file @
f06daa26
class
Admin::
Build
sController
<
Admin
::
ApplicationController
class
Admin::
Job
sController
<
Admin
::
ApplicationController
def
index
@scope
=
params
[
:scope
]
@all_builds
=
Ci
::
Build
...
...
@@ -20,6 +20,6 @@ def index
def
cancel_all
Ci
::
Build
.
running_or_pending
.
each
(
&
:cancel
)
redirect_to
admin_
build
s_path
redirect_to
admin_
job
s_path
end
end
app/controllers/projects/artifacts_controller.rb
View file @
f06daa26
...
...
@@ -46,7 +46,7 @@ def raw
def
keep
build
.
keep_artifacts!
redirect_to
namespace_project_
build
_path
(
project
.
namespace
,
project
,
build
)
redirect_to
namespace_project_
job
_path
(
project
.
namespace
,
project
,
build
)
end
def
latest_succeeded
...
...
@@ -79,7 +79,7 @@ def build
end
def
build_from_id
project
.
builds
.
find_by
(
id:
params
[
:
build_id
])
if
params
[
:build
_id
]
project
.
builds
.
find_by
(
id:
params
[
:
job_id
])
if
params
[
:job
_id
]
end
def
build_from_ref
...
...
app/controllers/projects/build_artifacts_controller.rb
0 → 100644
View file @
f06daa26
class
Projects::BuildArtifactsController
<
Projects
::
ApplicationController
include
ExtractsPath
include
RendersBlob
before_action
:authorize_read_build!
before_action
:extract_ref_name_and_path
before_action
:validate_artifacts!
def
download
redirect_to
download_namespace_project_job_artifacts_path
(
project
.
namespace
,
project
,
job
)
end
def
browse
redirect_to
browse_namespace_project_job_artifacts_path
(
project
.
namespace
,
project
,
job
,
path:
params
[
:path
])
end
def
file
redirect_to
file_namespace_project_job_artifacts_path
(
project
.
namespace
,
project
,
job
,
path:
params
[
:path
])
end
def
raw
redirect_to
raw_namespace_project_job_artifacts_path
(
project
.
namespace
,
project
,
job
,
path:
params
[
:path
])
end
def
latest_succeeded
redirect_to
latest_succeeded_namespace_project_artifacts_path
(
project
.
namespace
,
project
,
job
,
ref_name_and_path:
params
[
:ref_name_and_path
],
job:
params
[
:job
])
end
private
def
validate_artifacts!
render_404
unless
job
&&
job
.
artifacts?
end
def
extract_ref_name_and_path
return
unless
params
[
:ref_name_and_path
]
@ref_name
,
@path
=
extract_ref
(
params
[
:ref_name_and_path
])
end
def
job
@job
||=
job_from_id
||
job_from_ref
end
def
job_from_id
project
.
builds
.
find_by
(
id:
params
[
:build_id
])
if
params
[
:build_id
]
end
def
job_from_ref
return
unless
@ref_name
jobs
=
project
.
latest_successful_builds_for
(
@ref_name
)
jobs
.
find_by
(
name:
params
[
:job
])
end
end
app/controllers/projects/builds_controller.rb
View file @
f06daa26
class
Projects::BuildsController
<
Projects
::
ApplicationController
before_action
:build
,
except:
[
:index
,
:cancel_all
]
before_action
:authorize_read_build!
,
only:
[
:index
,
:show
,
:status
,
:raw
,
:trace
]
before_action
:authorize_update_build!
,
except:
[
:index
,
:show
,
:status
,
:raw
,
:trace
,
:cancel_all
]
layout
'project'
before_action
:authorize_read_build!
def
index
@scope
=
params
[
:scope
]
@all_builds
=
project
.
builds
.
relevant
@builds
=
@all_builds
.
order
(
'created_at DESC'
)
@builds
=
case
@scope
when
'pending'
@builds
.
pending
.
reverse_order
when
'running'
@builds
.
running
.
reverse_order
when
'finished'
@builds
.
finished
else
@builds
end
@builds
=
@builds
.
includes
([
{
pipeline: :project
},
:project
,
:tags
])
@builds
=
@builds
.
page
(
params
[
:page
]).
per
(
30
)
end
def
cancel_all
return
access_denied!
unless
can?
(
current_user
,
:update_build
,
project
)
@project
.
builds
.
running_or_pending
.
each
do
|
build
|
build
.
cancel
if
can?
(
current_user
,
:update_build
,
build
)
end
redirect_to
namespace_project_builds_path
(
project
.
namespace
,
project
)
redirect_to
namespace_project_jobs_path
(
project
.
namespace
,
project
)
end
def
show
@builds
=
@project
.
pipelines
.
find_by_sha
(
@build
.
sha
).
builds
.
order
(
'id DESC'
)
@builds
=
@builds
.
where
(
"id not in (?)"
,
@build
.
id
)
@pipeline
=
@build
.
pipeline
end
def
trace
build
.
trace
.
read
do
|
stream
|
respond_to
do
|
format
|
format
.
json
do
result
=
{
id:
@build
.
id
,
status:
@build
.
status
,
complete:
@build
.
complete?
}
if
stream
.
valid?
stream
.
limit
state
=
params
[
:state
].
presence
trace
=
stream
.
html_with_state
(
state
)
result
.
merge!
(
trace
.
to_h
)
end
render
json:
result
end
end
end
end
def
retry
return
respond_422
unless
@build
.
retryable?
build
=
Ci
::
Build
.
retry
(
@build
,
current_user
)
redirect_to
build_path
(
build
)
end
def
play
return
respond_422
unless
@build
.
playable?
build
=
@build
.
play
(
current_user
)
redirect_to
build_path
(
build
)
end
def
cancel
return
respond_422
unless
@build
.
cancelable?
@build
.
cancel
redirect_to
build_path
(
@build
)
end
def
status
render
json:
BuildSerializer
.
new
(
project:
@project
,
current_user:
@current_user
)
.
represent_status
(
@build
)
end
def
erase
if
@build
.
erase
(
erased_by:
current_user
)
redirect_to
namespace_project_build_path
(
project
.
namespace
,
project
,
@build
),
notice:
"Build has been successfully erased!"
else
respond_422
end
redirect_to
namespace_project_job_path
(
project
.
namespace
,
project
,
job
)
end
def
raw
build
.
trace
.
read
do
|
stream
|
if
stream
.
file?
send_file
stream
.
path
,
type:
'text/plain; charset=utf-8'
,
disposition:
'inline'
else
render_404
end
end
redirect_to
raw_namespace_project_job_path
(
project
.
namespace
,
project
,
job
)
end
private
def
authorize_update_build!
return
access_denied!
unless
can?
(
current_user
,
:update_build
,
build
)
end
def
build
@build
||=
project
.
builds
.
find
(
params
[
:id
])
.
present
(
current_user:
current_user
)
end
def
build_path
(
build
)
namespace_project_build_path
(
build
.
project
.
namespace
,
build
.
project
,
build
)
def
job
@job
||=
project
.
builds
.
find
(
params
[
:id
])
end
end
app/controllers/projects/jobs_controller.rb
0 → 100644
View file @
f06daa26
class
Projects::JobsController
<
Projects
::
ApplicationController
before_action
:build
,
except:
[
:index
,
:cancel_all
]
before_action
:authorize_read_build!
,
only:
[
:index
,
:show
,
:status
,
:raw
,
:trace
]
before_action
:authorize_update_build!
,
except:
[
:index
,
:show
,
:status
,
:raw
,
:trace
,
:cancel_all
]
layout
'project'
def
index
@scope
=
params
[
:scope
]
@all_builds
=
project
.
builds
.
relevant
@builds
=
@all_builds
.
order
(
'created_at DESC'
)
@builds
=
case
@scope
when
'pending'
@builds
.
pending
.
reverse_order
when
'running'
@builds
.
running
.
reverse_order
when
'finished'
@builds
.
finished
else
@builds
end
@builds
=
@builds
.
includes
([
{
pipeline: :project
},
:project
,
:tags
])
@builds
=
@builds
.
page
(
params
[
:page
]).
per
(
30
)
end
def
cancel_all
return
access_denied!
unless
can?
(
current_user
,
:update_build
,
project
)
@project
.
builds
.
running_or_pending
.
each
do
|
build
|
build
.
cancel
if
can?
(
current_user
,
:update_build
,
build
)
end
redirect_to
namespace_project_jobs_path
(
project
.
namespace
,
project
)
end
def
show
@builds
=
@project
.
pipelines
.
find_by_sha
(
@build
.
sha
).
builds
.
order
(
'id DESC'
)
@builds
=
@builds
.
where
(
"id not in (?)"
,
@build
.
id
)
@pipeline
=
@build
.
pipeline
end
def
trace
build
.
trace
.
read
do
|
stream
|
respond_to
do
|
format
|
format
.
json
do
result
=
{
id:
@build
.
id
,
status:
@build
.
status
,
complete:
@build
.
complete?
}
if
stream
.
valid?
stream
.
limit
state
=
params
[
:state
].
presence
trace
=
stream
.
html_with_state
(
state
)
result
.
merge!
(
trace
.
to_h
)
end
render
json:
result
end
end
end
end
def
retry
return
respond_422
unless
@build
.
retryable?
build
=
Ci
::
Build
.
retry
(
@build
,
current_user
)
redirect_to
build_path
(
build
)
end
def
play
return
respond_422
unless
@build
.
playable?
build
=
@build
.
play
(
current_user
)
redirect_to
build_path
(
build
)
end
def
cancel
return
respond_422
unless
@build
.
cancelable?
@build
.
cancel
redirect_to
build_path
(
@build
)
end
def
status
render
json:
BuildSerializer
.
new
(
project:
@project
,
current_user:
@current_user
)
.
represent_status
(
@build
)
end
def
erase
if
@build
.
erase
(
erased_by:
current_user
)
redirect_to
namespace_project_job_path
(
project
.
namespace
,
project
,
@build
),
notice:
"Build has been successfully erased!"
else
respond_422
end
end
def
raw
build
.
trace
.
read
do
|
stream
|
if
stream
.
file?
send_file
stream
.
path
,
type:
'text/plain; charset=utf-8'
,
disposition:
'inline'
else
render_404
end
end
end
private
def
authorize_update_build!
return
access_denied!
unless
can?
(
current_user
,
:update_build
,
build
)
end
def
build
@build
||=
project
.
builds
.
find
(
params
[
:id
])
.
present
(
current_user:
current_user
)
end
def
build_path
(
build
)
namespace_project_job_path
(
build
.
project
.
namespace
,
build
.
project
,
build
)
end
end
app/helpers/blob_helper.rb
View file @
f06daa26
...
...
@@ -120,7 +120,7 @@ def blob_icon(mode, name)
def
blob_raw_url
if
@build
&&
@entry
raw_namespace_project_
build
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
,
path:
@entry
.
path
)
raw_namespace_project_
job
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
,
path:
@entry
.
path
)
elsif
@snippet
if
@snippet
.
project_id
raw_namespace_project_snippet_path
(
@project
.
namespace
,
@project
,
@snippet
)
...
...
app/helpers/builds_helper.rb
View file @
f06daa26
...
...
@@ -2,7 +2,7 @@ module BuildsHelper
def
build_summary
(
build
,
skip:
false
)
if
build
.
has_trace?
if
skip
link_to
"View job trace"
,
pipeline_
build
_url
(
build
.
pipeline
,
build
)
link_to
"View job trace"
,
pipeline_
job
_url
(
build
.
pipeline
,
build
)
else
build
.
trace
.
html
(
last_lines:
10
).
html_safe
end
...
...
@@ -20,8 +20,8 @@ def sidebar_build_class(build, current_build)
def
javascript_build_options
{
page_url:
namespace_project_
build
_url
(
@project
.
namespace
,
@project
,
@build
),
build_url:
namespace_project_
build
_url
(
@project
.
namespace
,
@project
,
@build
,
:json
),
page_url:
namespace_project_
job
_url
(
@project
.
namespace
,
@project
,
@build
),
build_url:
namespace_project_
job
_url
(
@project
.
namespace
,
@project
,
@build
,
:json
),
build_status:
@build
.
status
,
build_stage:
@build
.
stage
,
log_state:
''
...
...
@@ -31,7 +31,7 @@ def javascript_build_options
def
build_failed_issue_options
{
title:
"Build Failed #
#{
@build
.
id
}
"
,
description:
namespace_project_
build
_url
(
@project
.
namespace
,
@project
,
@build
)
description:
namespace_project_
job
_url
(
@project
.
namespace
,
@project
,
@build
)
}
end
end
app/helpers/gitlab_routing_helper.rb
View file @
f06daa26
...
...
@@ -50,8 +50,8 @@ def project_cycle_analytics_path(project, *args)
namespace_project_cycle_analytics_path
(
project
.
namespace
,
project
,
*
args
)
end
def
project_
build
s_path
(
project
,
*
args
)
namespace_project_
build
s_path
(
project
.
namespace
,
project
,
*
args
)
def
project_
job
s_path
(
project
,
*
args
)
namespace_project_
job
s_path
(
project
.
namespace
,
project
,
*
args
)
end
def
project_ref_path
(
project
,
ref_name
,
*
args
)
...
...
@@ -110,8 +110,8 @@ def pipeline_url(pipeline, *args)
namespace_project_pipeline_url
(
pipeline
.
project
.
namespace
,
pipeline
.
project
,
pipeline
.
id
,
*
args
)
end
def
pipeline_
build
_url
(
pipeline
,
build
,
*
args
)
namespace_project_
build
_url
(
pipeline
.
project
.
namespace
,
pipeline
.
project
,
build
.
id
,
*
args
)
def
pipeline_
job
_url
(
pipeline
,
build
,
*
args
)
namespace_project_
job
_url
(
pipeline
.
project
.
namespace
,
pipeline
.
project
,
build
.
id
,
*
args
)
end
def
commits_url
(
entity
,
*
args
)
...
...
@@ -215,13 +215,13 @@ def artifacts_action_path(path, project, build)
case
action
when
'download'
download_namespace_project_
build
_artifacts_path
(
*
args
)
download_namespace_project_
job
_artifacts_path
(
*
args
)
when
'browse'
browse_namespace_project_
build
_artifacts_path
(
*
args
)
browse_namespace_project_
job
_artifacts_path
(
*
args
)
when
'file'
file_namespace_project_
build
_artifacts_path
(
*
args
)
file_namespace_project_
job
_artifacts_path
(
*
args
)
when
'raw'
raw_namespace_project_
build
_artifacts_path
(
*
args
)
raw_namespace_project_
job
_artifacts_path
(
*
args
)
end
end
...
...
app/models/ci/build.rb
View file @
f06daa26
...
...
@@ -51,6 +51,12 @@ def persisted_environment
after_destroy
:update_project_statistics
class
<<
self
# This is needed for url_for to work,
# as the controller is JobsController
def
model_name
ActiveModel
::
Name
.
new
(
self
,
nil
,
'job'
)
end
def
first_pending
pending
.
unstarted
.
order
(
'created_at ASC'
).
first
end
...
...
app/serializers/analytics_build_entity.rb
View file @
f06daa26
...
...
@@ -25,7 +25,7 @@ class AnalyticsBuildEntity < Grape::Entity
end
expose
:url
do
|
build
|
url_to
(
:namespace_project_
build
,
build
)
url_to
(
:namespace_project_
job
,
build
)
end
expose
:commit_url
do
|
build
|
...
...
app/serializers/build_action_entity.rb
View file @
f06daa26
...
...
@@ -6,7 +6,7 @@ class BuildActionEntity < Grape::Entity
end
expose
:path
do
|
build
|
play_namespace_project_
build
_path
(
play_namespace_project_
job
_path
(
build
.
project
.
namespace
,
build
.
project
,
build
)
...
...
app/serializers/build_artifact_entity.rb
View file @
f06daa26
...
...
@@ -6,7 +6,7 @@ class BuildArtifactEntity < Grape::Entity
end
expose
:path
do
|
build
|
download_namespace_project_
build
_artifacts_path
(
download_namespace_project_
job
_artifacts_path
(
build
.
project
.
namespace
,
build
.
project
,
build
)
...
...
app/serializers/build_entity.rb
View file @
f06daa26
...
...
@@ -5,15 +5,15 @@ class BuildEntity < Grape::Entity
expose
:name
expose
:build_path
do
|
build
|
path_to
(
:namespace_project_
build
,
build
)
path_to
(
:namespace_project_
job
,
build
)
end
expose
:retry_path
do
|
build
|
path_to
(
:retry_namespace_project_
build
,
build
)
path_to
(
:retry_namespace_project_
job
,
build
)
end
expose
:play_path
,
if:
->
(
*
)
{
playable?
}
do
|
build
|
path_to
(
:play_namespace_project_
build
,
build
)
path_to
(
:play_namespace_project_
job
,
build
)
end
expose
:playable?
,
as: :playable
...
...
app/views/admin/dashboard/_head.html.haml
View file @
f06daa26
...
...
@@ -20,7 +20,7 @@
%span
Groups
=
nav_link
path:
'builds#index'
do
=
link_to
admin_
build
s_path
,
title:
'Jobs'
do
=
link_to
admin_
job
s_path
,
title:
'Jobs'
do
%span
Jobs
=
nav_link
path:
[
'runners#index'
,
'runners#show'
]
do
...
...
app/views/admin/
build
s/index.html.haml
→
app/views/admin/
job
s/index.html.haml
View file @
f06daa26
...
...
@@ -4,15 +4,15 @@
%div
{
class:
container_class
}
.top-area
-
build_path_proc
=
->
(
scope
)
{
admin_
build
s_path
(
scope:
scope
)
}
-
build_path_proc
=
->
(
scope
)
{
admin_
job
s_path
(
scope:
scope
)
}
=
render
"shared/builds/tabs"
,
build_path_proc:
build_path_proc
,
all_builds:
@all_builds
,
scope:
@scope
.nav-controls
-
if
@all_builds
.
running_or_pending
.
any?
=
link_to
'Cancel all'
,
cancel_all_admin_
build
s_path
,
data:
{
confirm:
'Are you sure?'
},
class:
'btn btn-danger'
,
method: :post
=
link_to
'Cancel all'
,
cancel_all_admin_
job
s_path
,
data:
{
confirm:
'Are you sure?'
},
class:
'btn btn-danger'
,
method: :post
.row-content-block.second-block
#{
(
@scope
||
'all'
).
capitalize
}
jobs
%ul
.content-list.builds-content-list.admin-builds-table
=
render
"projects/
build
s/table"
,
builds:
@builds
,
admin:
true
=
render
"projects/
job
s/table"
,
builds:
@builds
,
admin:
true
app/views/admin/runners/show.html.haml
View file @
f06daa26
...
...
@@ -85,7 +85,7 @@
%tr
.build
%td
.id
-
if
project
=
link_to
namespace_project_
build
_path
(
project
.
namespace
,
project
,
build
)
do
=
link_to
namespace_project_
job
_path
(
project
.
namespace
,
project
,
build
)
do
%strong
##{build.id}
-
else
%strong
##{build.id}
...
...
app/views/layouts/nav/_project.html.haml
View file @
f06daa26
...
...
@@ -92,7 +92,7 @@
-# Shortcut to Pipelines > Jobs
-
if
project_nav_tab?
:builds
%li
.hidden
=
link_to
project_
build
s_path
(
@project
),
title:
'Jobs'
,
class:
'shortcuts-builds'
do
=
link_to
project_
job
s_path
(
@project
),
title:
'Jobs'
,
class:
'shortcuts-builds'
do
Jobs
-# Shortcut to commits page
...
...
app/views/notify/links/ci/builds/_build.html.haml
View file @
f06daa26
%a
{
href:
pipeline_
build
_url
(
pipeline
,
build
),
style:
"color:#3777b0;text-decoration:none;"
}
%a
{
href:
pipeline_
job
_url
(
pipeline
,
build
),
style:
"color:#3777b0;text-decoration:none;"
}
=
build
.
name
app/views/notify/links/ci/builds/_build.text.erb
View file @
f06daa26
Job #
<%=
build
.
id
%>
(
<%=
pipeline_
build
_url
(
pipeline
,
build
)
%>
)
Job #
<%=
build
.
id
%>
(
<%=
pipeline_
job
_url
(
pipeline
,
build
)
%>
)
app/views/projects/artifacts/_tree_directory.html.haml
View file @
f06daa26
-
path_to_directory
=
browse_namespace_project_
build
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
,
path:
directory
.
path
)
-
path_to_directory
=
browse_namespace_project_
job
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
,
path:
directory
.
path
)
%tr
.tree-item
{
'data-link'
=>
path_to_directory
}
%td
.tree-item-file-name
...
...
app/views/projects/artifacts/_tree_file.html.haml
View file @
f06daa26
-
path_to_file
=
file_namespace_project_
build
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
,
path:
file
.
path
)
-
path_to_file
=
file_namespace_project_
job
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
,
path:
file
.
path
)
%tr
.tree-item
{
'data-link'
=>
path_to_file
}
-
blob
=
file
.
blob
...
...
app/views/projects/artifacts/browse.html.haml
View file @
f06daa26
-
page_title
@path
.
presence
,
'Artifacts'
,
"
#{
@build
.
name
}
(#
#{
@build
.
id
}
)"
,
'Jobs'
=
render
"projects/pipelines/head"
=
render
"projects/
build
s/header"
,
show_controls:
false
=
render
"projects/
job
s/header"
,
show_controls:
false
.tree-holder
.nav-block
.tree-controls
=
link_to
download_namespace_project_
build
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
),
=
link_to
download_namespace_project_
job
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
),
rel:
'nofollow'
,
download:
''
,
class:
'btn btn-default download'
do
=
icon
(
'download'
)
Download artifacts archive
%ul
.breadcrumb.repo-breadcrumb
%li
=
link_to
'Artifacts'
,
browse_namespace_project_
build
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
)
=
link_to
'Artifacts'
,
browse_namespace_project_
job
_artifacts_path
(
@project
.
namespace
,
@project
,
@build
)
-
path_breadcrumbs
do
|
title
,
path
|