Commit cf7da039 authored by Kamil Trzcinski's avatar Kamil Trzcinski

commit status

parent ff345f8b
class Projects::EnvironmentsController < Projects::ApplicationController
layout 'project'
def index
@environments = project.builds.where.not(environment: nil).pluck(:environment).uniq
@environments = @environments.map { |env| build_for_env(env) }.compact
end
def show
@environment = params[:id].to_s
@builds = project.builds.where.not(status: ["manual"]).where(environment: params[:id].to_s).order(id: :desc).page(params[:page]).per(30)
end
def build_for_env(environment)
project.builds.success.order(id: :desc).find_by(environment: environment)
end
end
...@@ -29,6 +29,10 @@ module GitlabRoutingHelper ...@@ -29,6 +29,10 @@ module GitlabRoutingHelper
namespace_project_pipelines_path(project.namespace, project, *args) namespace_project_pipelines_path(project.namespace, project, *args)
end end
def project_environments_path(project, *args)
namespace_project_environments_path(project.namespace, project, *args)
end
def project_builds_path(project, *args) def project_builds_path(project, *args)
namespace_project_builds_path(project.namespace, project, *args) namespace_project_builds_path(project.namespace, project, *args)
end end
......
...@@ -161,6 +161,10 @@ module Ci ...@@ -161,6 +161,10 @@ module Ci
git_commit_message =~ /(\[ci skip\])/ if git_commit_message git_commit_message =~ /(\[ci skip\])/ if git_commit_message
end end
def environments
builds.where.not(environment: nil).success.pluck(:environment).uniq
end
private private
def update_state def update_state
......
%tr.commit
- commit = build.commit
- status = build.status
%td
%strong
= link_to build.environment, namespace_project_environment_path(@project.namespace, @project, build.environment), class: "monospace"
%td.commit-link
= link_to namespace_project_pipeline_path(@project.namespace, @project, commit.id), class: "ci-status ci-#{commit.status}" do
= ci_icon_for_status(commit.status)
%strong ##{commit.id}
%td.commit-link
= link_to namespace_project_build_path(@project.namespace, @project, build.id), class: "ci-status ci-#{build.status}" do
= ci_icon_for_status(build.status)
%strong ##{build.id}
%td
%div.branch-commit
- if commit.ref
= link_to commit.ref, namespace_project_commits_path(@project.namespace, @project, commit.ref), class: "monospace"
&middot;
= link_to commit.short_sha, namespace_project_commit_path(@project.namespace, @project, commit.sha), class: "commit-id monospace"
%p
%span
- if commit_data = commit.commit_data
= link_to_gfm commit_data.title, namespace_project_commit_path(@project.namespace, @project, commit_data.id), class: "commit-row-message"
- else
Cant find HEAD commit for this branch
%td
- if build.started_at && build.finished_at
%p
%i.fa.fa-clock-o
&nbsp;
#{duration_in_words(build.finished_at, build.started_at)}
- if build.finished_at
%p
%i.fa.fa-calendar
&nbsp;
#{time_ago_with_tooltip(build.finished_at)}
%td
.controls.hidden-xs.pull-right
- manual = commit.builds.latest.manual_actions.to_a
- if manual.any?
.dropdown.inline
%button.dropdown-toggle.btn{type: 'button', 'data-toggle' => 'dropdown'}
= icon('play')
%b.caret
%ul.dropdown-menu.dropdown-menu-align-right
- manual.each do |manual_build|
%li
= link_to '#', rel: 'nofollow' do
%i.fa.fa-play
%span #{manual_build.name}
- header_title project_title(@project, "Environments", project_environments_path(@project))
- page_title "Environments"
= render "header_title"
.gray-content-block
Environments for this project
%ul.content-list
- if @environments.blank?
%li
.nothing-here-block No environments to show
- else
.table-holder
%table.table.builds
%tbody
%th Environment
%th Pipeline ID
%th Build ID
%th Changes
%th
%th
- @environments.each do |build|
= render "environment", build: build
- page_title "Environments"
= render "header_title"
.gray-content-block
Latest deployments for
%strong
= @environment
%ul.content-list
- if @builds.blank?
%li
.nothing-here-block No builds to show for specific environment
- else
.table-holder
%table.table.builds
%thead
%tr
%th Status
%th Build ID
%th Commit
%th Ref
%th Name
%th Duration
%th Finished at
%th
= render @builds, commit_sha: true, ref: true, allow_retry: true
= paginate @builds, theme: 'gitlab'
...@@ -704,6 +704,8 @@ Rails.application.routes.draw do ...@@ -704,6 +704,8 @@ Rails.application.routes.draw do
end end
end end
resources :environments, only: [:index, :show]
resources :builds, only: [:index, :show], constraints: { id: /\d+/ } do resources :builds, only: [:index, :show], constraints: { id: /\d+/ } do
collection do collection do
post :cancel_all post :cancel_all
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment