diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-10-15 11:47:36 +0200 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-10-15 11:47:36 +0200 |
commit | c993481d991333fe0750080eec98fd2e9eeda8d5 (patch) | |
tree | 7d1fdd7926f8542b7fbf7add052004dbfd48b206 /app/controllers/projects/builds_controller.rb | |
parent | 83f04853e9a749c3397ee7683a78b986e1070904 (diff) | |
parent | 123669a55107514798ba531ba3a744b3ec8503ee (diff) | |
download | gitlab-ce-git-archive-golang.tar.gz |
Merge branch 'master' into git-archive-golanggit-archive-golang
Diffstat (limited to 'app/controllers/projects/builds_controller.rb')
-rw-r--r-- | app/controllers/projects/builds_controller.rb | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/app/controllers/projects/builds_controller.rb b/app/controllers/projects/builds_controller.rb new file mode 100644 index 00000000000..4e4ac6689d3 --- /dev/null +++ b/app/controllers/projects/builds_controller.rb @@ -0,0 +1,55 @@ +class Projects::BuildsController < Projects::ApplicationController + before_action :ci_project + before_action :build + + before_action :authorize_admin_project!, except: [:show, :status] + + layout "project" + + def show + @builds = @ci_project.commits.find_by_sha(@build.sha).builds.order('id DESC') + @builds = @builds.where("id not in (?)", @build.id).page(params[:page]).per(20) + @commit = @build.commit + + respond_to do |format| + format.html + format.json do + render json: @build.to_json(methods: :trace_html) + end + end + end + + def retry + if @build.commands.blank? + return page_404 + end + + build = Ci::Build.retry(@build) + + if params[:return_to] + redirect_to URI.parse(params[:return_to]).path + else + redirect_to build_path(build) + end + end + + def status + render json: @build.to_json(only: [:status, :id, :sha, :coverage], methods: :sha) + end + + def cancel + @build.cancel + + redirect_to build_path(@build) + end + + private + + def build + @build ||= ci_project.builds.unscoped.find_by!(id: params[:id]) + end + + def build_path(build) + namespace_project_build_path(build.gl_project.namespace, build.gl_project, build) + end +end |