summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-09-05 15:10:34 +0900
committerShinya Maeda <shinya@gitlab.com>2017-09-05 15:10:34 +0900
commit38d9b4d77d85e26f827ff9640243494adc8597ed (patch)
tree7052b5d25da7a793fe899967410f471d5e64f1ad
parent5d50cbfaab1d67ffaea6064aeac848f1fc1127a6 (diff)
downloadgitlab-ce-feature/sm/37239-implement-failure_reason-on-ci_builds.tar.gz
Use script_failure. Add runner_system_failure. Improve spec.feature/sm/37239-implement-failure_reason-on-ci_builds
-rw-r--r--app/models/commit_status.rb5
-rw-r--r--app/services/projects/update_pages_service.rb2
-rw-r--r--lib/api/runner.rb3
-rw-r--r--spec/models/commit_status_spec.rb6
-rw-r--r--spec/requests/api/runner_spec.rb28
-rw-r--r--spec/services/projects/update_pages_service_spec.rb2
6 files changed, 28 insertions, 18 deletions
diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb
index 1e8f28b6466..f3888528940 100644
--- a/app/models/commit_status.rb
+++ b/app/models/commit_status.rb
@@ -40,9 +40,10 @@ class CommitStatus < ActiveRecord::Base
enum failure_reason: {
unknown_failure: nil,
- job_failure: 1,
+ script_failure: 1,
api_failure: 2,
- stuck_or_timeout_failure: 3
+ stuck_or_timeout_failure: 3,
+ runner_system_failure: 4
}
state_machine :status do
diff --git a/app/services/projects/update_pages_service.rb b/app/services/projects/update_pages_service.rb
index a18b9aae1ea..d34903c9989 100644
--- a/app/services/projects/update_pages_service.rb
+++ b/app/services/projects/update_pages_service.rb
@@ -53,7 +53,7 @@ module Projects
log_error("Projects::UpdatePagesService: #{message}")
@status.allow_failure = !latest?
@status.description = message
- @status.drop(:job_failure)
+ @status.drop(:script_failure)
super
end
diff --git a/lib/api/runner.rb b/lib/api/runner.rb
index 76354fd8c98..a3987c560dd 100644
--- a/lib/api/runner.rb
+++ b/lib/api/runner.rb
@@ -129,8 +129,7 @@ module API
when 'success'
job.success
when 'failed'
- failure_reason = params[:failure_reason] ? params[:failure_reason].to_sym : :unknown_failure
- job.drop(failure_reason)
+ job.drop(params[:failure_reason] || :unknown_failure)
end
end
diff --git a/spec/models/commit_status_spec.rb b/spec/models/commit_status_spec.rb
index 0a6b0023dea..858ec831200 100644
--- a/spec/models/commit_status_spec.rb
+++ b/spec/models/commit_status_spec.rb
@@ -458,10 +458,10 @@ describe CommitStatus do
it { is_expected.to be_unknown_failure }
end
- context 'when failure_reason is job_failure' do
- let(:reason) { :job_failure }
+ context 'when failure_reason is script_failure' do
+ let(:reason) { :script_failure }
- it { is_expected.to be_job_failure }
+ it { is_expected.to be_script_failure }
end
end
end
diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb
index f9dcd9d07cb..419a65c69b5 100644
--- a/spec/requests/api/runner_spec.rb
+++ b/spec/requests/api/runner_spec.rb
@@ -626,24 +626,34 @@ describe API::Runner do
it 'mark job as succeeded' do
update_job(state: 'success')
- expect(job.reload.status).to eq 'success'
- expect(job).to be_unknown_failure
+ job.reload
+ expect(job).to be_success
end
it 'mark job as failed' do
update_job(state: 'failed')
- expect(job.reload.status).to eq 'failed'
- expect(job).to be_job_failure
+ job.reload
+ expect(job).to be_failed
+ expect(job).to be_unknown_failure
end
- context 'when failure_reason is given' do
- it 'mark job as failed' do
- update_job(state: 'failed', failure_reason: 'stuck_or_timeout_failure')
+ context 'when failure_reason is script_failure' do
+ before do
+ update_job(state: 'failed', failure_reason: 'script_failure')
+ job.reload
+ end
+
+ it { expect(job).to be_script_failure }
+ end
- expect(job.reload.status).to eq 'failed'
- expect(job).to be_stuck_or_timeout_failure
+ context 'when failure_reason is runner_system_failure' do
+ before do
+ update_job(state: 'failed', failure_reason: 'runner_system_failure')
+ job.reload
end
+
+ it { expect(job).to be_runner_system_failure }
end
end
diff --git a/spec/services/projects/update_pages_service_spec.rb b/spec/services/projects/update_pages_service_spec.rb
index 5fc69c7e4e5..031366d1825 100644
--- a/spec/services/projects/update_pages_service_spec.rb
+++ b/spec/services/projects/update_pages_service_spec.rb
@@ -116,7 +116,7 @@ describe Projects::UpdatePagesService do
expect(deploy_status.description)
.to match(/artifacts for pages are too large/)
- expect(deploy_status).to be_job_failure
+ expect(deploy_status).to be_script_failure
end
end