From 9c811566f85d18bc9eb4a85c6a343cf1bfa4fbd2 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Wed, 7 Nov 2018 14:29:16 +0900 Subject: Revert add action column changes --- app/models/environment.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'app/models/environment.rb') diff --git a/app/models/environment.rb b/app/models/environment.rb index 1a535ba6b18..581c870b2c5 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -8,9 +8,9 @@ class Environment < ActiveRecord::Base belongs_to :project, required: true - has_many :deployments, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent + has_many :deployments, -> { success }, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent - has_one :last_deployment, -> { deployed.order('deployments.id DESC') }, class_name: 'Deployment' + has_one :last_deployment, -> { success.order('deployments.id DESC') }, class_name: 'Deployment' before_validation :nullify_external_url before_validation :generate_slug, if: ->(env) { env.slug.blank? } @@ -50,7 +50,7 @@ class Environment < ActiveRecord::Base scope :in_review_folder, -> { where(environment_type: "review") } scope :for_name, -> (name) { where(name: name) } scope :for_project, -> (project) { where(project_id: project) } - scope :with_deployment, -> (sha) { where('EXISTS (?)', Deployment.select(1).start.where('deployments.environment_id = environments.id').where(sha: sha)) } + scope :with_deployment, -> (sha) { where('EXISTS (?)', Deployment.select(1).where('deployments.environment_id = environments.id').where(sha: sha)) } state_machine :state, initial: :available do event :start do @@ -103,6 +103,15 @@ class Environment < ActiveRecord::Base folder_name == "production" end + def first_deployment_for(commit_sha) + ref = project.repository.ref_name_for_sha(ref_path, commit_sha) + + return nil unless ref + + deployment_iid = ref.split('/').last + deployments.find_by(iid: deployment_iid) + end + def ref_path "refs/#{Repository::REF_ENVIRONMENTS}/#{slug}" end -- cgit v1.2.3