diff options
-rw-r--r-- | app/models/commit_status.rb | 5 | ||||
-rw-r--r-- | app/services/projects/update_pages_service.rb | 2 | ||||
-rw-r--r-- | lib/api/runner.rb | 3 | ||||
-rw-r--r-- | spec/models/commit_status_spec.rb | 6 | ||||
-rw-r--r-- | spec/requests/api/runner_spec.rb | 28 | ||||
-rw-r--r-- | spec/services/projects/update_pages_service_spec.rb | 2 |
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 |