Update specs for CI Build, add `artifacts?` method
`artifacts?` method checks if artifacts archive is available.
This commit is contained in:
parent
9e0e9342a4
commit
8eeed761a9
|
@ -15,6 +15,8 @@ class Projects::ArtifactsController < Projects::ApplicationController
|
|||
end
|
||||
|
||||
def browse
|
||||
return render_404 unless build.artifacts?
|
||||
|
||||
current_path = params[:path] ? "./#{params[:path]}/" : './'
|
||||
artifacts_metadata = build.artifacts_metadata(current_path)
|
||||
@path = Gitlab::StringPath.new(current_path, artifacts_metadata)
|
||||
|
|
|
@ -319,24 +319,26 @@ module Ci
|
|||
pending? && !any_runners_online?
|
||||
end
|
||||
|
||||
def artifacts_download_url
|
||||
if artifacts_file.exists?
|
||||
download_namespace_project_build_artifacts_path(project.namespace, project, self)
|
||||
end
|
||||
end
|
||||
|
||||
def artifacts_browse_url
|
||||
if artifacts_file.exists?
|
||||
browse_namespace_project_build_artifacts_path(project.namespace, project, self)
|
||||
end
|
||||
end
|
||||
|
||||
def execute_hooks
|
||||
build_data = Gitlab::BuildDataBuilder.build(self)
|
||||
project.execute_hooks(build_data.dup, :build_hooks)
|
||||
project.execute_services(build_data.dup, :build_hooks)
|
||||
end
|
||||
|
||||
def artifacts?
|
||||
artifacts_file.exists?
|
||||
end
|
||||
|
||||
def artifacts_download_url
|
||||
download_namespace_project_build_artifacts_path(project.namespace, project, self) if
|
||||
artifacts?
|
||||
end
|
||||
|
||||
def artifacts_browse_url
|
||||
browse_namespace_project_build_artifacts_path(project.namespace, project, self) if
|
||||
artifacts?
|
||||
end
|
||||
|
||||
def artifacts_metadata(path)
|
||||
[]
|
||||
end
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
|
||||
%td
|
||||
.pull-right
|
||||
- if current_user && can?(current_user, :download_build_artifacts, project) && build.artifacts_file.exist?
|
||||
- if current_user && can?(current_user, :download_build_artifacts, project) && build.artifacts?
|
||||
= link_to build.artifacts_download_url, title: 'Download artifacts' do
|
||||
%i.fa.fa-download
|
||||
- if current_user && can?(current_user, :manage_builds, build.project)
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
Test coverage
|
||||
%h1 #{@build.coverage}%
|
||||
|
||||
- if current_user && can?(current_user, :download_build_artifacts, @project) && @build.artifacts_file.exist?
|
||||
- if current_user && can?(current_user, :download_build_artifacts, @project) && @build.artifacts?
|
||||
.build-widget.center
|
||||
.panel.panel-default
|
||||
.panel-heading Build artifacts
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
|
||||
%td
|
||||
.pull-right
|
||||
- if current_user && can?(current_user, :download_build_artifacts, commit_status.project) && commit_status.artifacts_file.exist?
|
||||
- if current_user && can?(current_user, :download_build_artifacts, commit_status.project) && commit_status.artifacts?
|
||||
= link_to commit_status.artifacts_download_url, title: 'Download artifacts' do
|
||||
%i.fa.fa-download
|
||||
- if current_user && can?(current_user, :manage_builds, commit_status.project)
|
||||
|
|
|
@ -1,28 +1,3 @@
|
|||
# == Schema Information
|
||||
#
|
||||
# Table name: builds
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# project_id :integer
|
||||
# status :string(255)
|
||||
# finished_at :datetime
|
||||
# trace :text
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
# started_at :datetime
|
||||
# runner_id :integer
|
||||
# commit_id :integer
|
||||
# coverage :float
|
||||
# commands :text
|
||||
# job_id :integer
|
||||
# name :string(255)
|
||||
# deploy :boolean default(FALSE)
|
||||
# options :text
|
||||
# allow_failure :boolean default(FALSE), not null
|
||||
# stage :string(255)
|
||||
# trigger_request_id :integer
|
||||
#
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Ci::Build, models: true do
|
||||
|
@ -376,13 +351,46 @@ describe Ci::Build, models: true do
|
|||
is_expected.to be_nil
|
||||
end
|
||||
|
||||
it 'should be nil if artifact exist' do
|
||||
it 'should not be nil if artifact exist' do
|
||||
gif = fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif')
|
||||
build.update_attributes(artifacts_file: gif)
|
||||
is_expected.to_not be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe :artifacts_browse_url do
|
||||
subject { build.artifacts_browse_url }
|
||||
|
||||
it "should be nil if artifact doesn't exist" do
|
||||
build.update_attributes(artifacts_file: nil)
|
||||
is_expected.to be_nil
|
||||
end
|
||||
|
||||
it 'should not be nil if artifact exist' do
|
||||
gif = fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif')
|
||||
build.update_attributes(artifacts_file: gif)
|
||||
is_expected.to_not be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe :artifacts? do
|
||||
subject { build.artifacts? }
|
||||
|
||||
context 'artifacts archive does not exist' do
|
||||
before { build.update_attributes(artifacts_file: nil) }
|
||||
it { is_expected.to be_falsy }
|
||||
end
|
||||
|
||||
context 'artifacts archive exists' do
|
||||
before do
|
||||
gif = fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif')
|
||||
build.update_attributes(artifacts_file: gif)
|
||||
end
|
||||
|
||||
it { is_expected.to be_truthy }
|
||||
end
|
||||
end
|
||||
|
||||
describe :repo_url do
|
||||
let(:build) { FactoryGirl.create :ci_build }
|
||||
let(:project) { build.project }
|
||||
|
|
Loading…
Reference in New Issue