diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 119c6fd7b45..965ba35c8b0 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -6,6 +6,8 @@ module Ci include Presentable include Importable + MissingDependenciesError = Class.new(StandardError) + belongs_to :runner belongs_to :trigger_request belongs_to :erased_by, class_name: 'User' @@ -141,8 +143,8 @@ module Ci end before_transition any => [:running] do |build| - if !build.empty_dependencies? && build.dependencies.empty? - raise Gitlab::Ci::Error::MissingDependencies + if build.specified_dependencies? && build.dependencies.empty? + raise MissingDependenciesError end end end @@ -484,6 +486,10 @@ module Ci options[:dependencies]&.empty? end + def specified_dependencies? + options.has_key?(:dependencies) && options[:dependencies].any? + end + def hide_secrets(trace) return unless trace diff --git a/app/services/ci/register_job_service.rb b/app/services/ci/register_job_service.rb index f73902935e6..c8b6450c9b5 100644 --- a/app/services/ci/register_job_service.rb +++ b/app/services/ci/register_job_service.rb @@ -54,7 +54,7 @@ module Ci # we still have to return 409 in the end, # to make sure that this is properly handled by runner. valid = false - rescue Gitlab::Ci::Error::MissingDependencies + rescue Ci::Build::MissingDependenciesError build.drop!(:missing_dependency_failure) valid = false end diff --git a/lib/gitlab/ci/error/missing_dependencies.rb b/lib/gitlab/ci/error/missing_dependencies.rb deleted file mode 100644 index f4b1940d84f..00000000000 --- a/lib/gitlab/ci/error/missing_dependencies.rb +++ /dev/null @@ -1,7 +0,0 @@ -module Gitlab - module Ci - module Error - class MissingDependencies < StandardError; end - end - end -end diff --git a/spec/lib/gitlab/ci/error/missing_dependencies_spec.rb b/spec/lib/gitlab/ci/error/missing_dependencies_spec.rb deleted file mode 100644 index 039a4776dc3..00000000000 --- a/spec/lib/gitlab/ci/error/missing_dependencies_spec.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'spec_helper' - -describe Gitlab::Ci::Error::MissingDependencies do - it { expect(described_class).to be < StandardError } -end diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index 61ac2dd78d1..f8d8b1800b8 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -1893,7 +1893,7 @@ describe Ci::Build do end context 'when depended jobs do not exist' do - it { expect { build.run! }.to raise_error(Gitlab::Ci::Error::MissingDependencies) } + it { expect { build.run! }.to raise_error(Ci::Build::MissingDependenciesError) } end end end