summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-06-15 12:03:49 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2016-06-15 12:03:49 +0200
commit2541e50d7ce64bb402d06dc9d75567b78282c7b7 (patch)
treeab2fc7f250cc10631da0ffb9b5bd6f2d50ca4974
parent14a02a6a95353948d00f8f973b35b80ac06f4599 (diff)
downloadgitlab-ce-2541e50d7ce64bb402d06dc9d75567b78282c7b7.tar.gz
Improve validations
-rw-r--r--app/models/deployment.rb6
-rw-r--r--app/models/environment.rb4
-rw-r--r--db/migrate/20160610204157_add_deployments.rb12
-rw-r--r--db/migrate/20160610204158_add_environments.rb2
-rw-r--r--db/schema.rb40
-rw-r--r--spec/factories/deployments.rb1
6 files changed, 31 insertions, 34 deletions
diff --git a/app/models/deployment.rb b/app/models/deployment.rb
index d9006b70e30..cda922080cb 100644
--- a/app/models/deployment.rb
+++ b/app/models/deployment.rb
@@ -1,15 +1,13 @@
class Deployment < ActiveRecord::Base
include InternalId
- belongs_to :project
- belongs_to :environment
+ belongs_to :project, required: true
+ belongs_to :environment, required: true
belongs_to :user
belongs_to :deployable, polymorphic: true
validates :sha, presence: true
validates :ref, presence: true
- validates :project, associated: true
- validates :environment, associated: true
delegate :name, to: :environment, prefix: true
diff --git a/app/models/environment.rb b/app/models/environment.rb
index ac6f8c81e01..7986a2529df 100644
--- a/app/models/environment.rb
+++ b/app/models/environment.rb
@@ -1,5 +1,5 @@
class Environment < ActiveRecord::Base
- belongs_to :project
+ belongs_to :project, required: true
has_many :deployments
@@ -10,8 +10,6 @@ class Environment < ActiveRecord::Base
format: { with: Gitlab::Regex.environment_name_regex,
message: Gitlab::Regex.environment_name_regex_message }
- validates :project, associated: true
-
def last_deployment
deployments.last
end
diff --git a/db/migrate/20160610204157_add_deployments.rb b/db/migrate/20160610204157_add_deployments.rb
index 557b78f91e1..cfa842daa6d 100644
--- a/db/migrate/20160610204157_add_deployments.rb
+++ b/db/migrate/20160610204157_add_deployments.rb
@@ -6,12 +6,12 @@ class AddDeployments < ActiveRecord::Migration
def change
create_table :deployments, force: true do |t|
- t.integer :iid
- t.integer :project_id
- t.integer :environment_id
- t.string :ref
- t.boolean :tag
- t.string :sha
+ t.integer :iid, null: false
+ t.integer :project_id, null: false
+ t.integer :environment_id, null: false
+ t.string :ref, null: false
+ t.boolean :tag, null: false
+ t.string :sha, null: false
t.integer :user_id
t.integer :deployable_id
t.string :deployable_type
diff --git a/db/migrate/20160610204158_add_environments.rb b/db/migrate/20160610204158_add_environments.rb
index 8311fd39b01..e1c71d173c4 100644
--- a/db/migrate/20160610204158_add_environments.rb
+++ b/db/migrate/20160610204158_add_environments.rb
@@ -6,7 +6,7 @@ class AddEnvironments < ActiveRecord::Migration
def change
create_table :environments, force: true do |t|
- t.integer :project_id
+ t.integer :project_id, null: false
t.string :name, null: false
t.datetime :created_at
t.datetime :updated_at
diff --git a/db/schema.rb b/db/schema.rb
index 388b259277a..3ac64e888ee 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -384,12 +384,12 @@ ActiveRecord::Schema.define(version: 20160610301627) do
add_index "deploy_keys_projects", ["project_id"], name: "index_deploy_keys_projects_on_project_id", using: :btree
create_table "deployments", force: :cascade do |t|
- t.integer "iid"
- t.integer "project_id"
- t.integer "environment_id"
- t.string "ref"
- t.boolean "tag"
- t.string "sha"
+ t.integer "iid", null: false
+ t.integer "project_id", null: false
+ t.integer "environment_id", null: false
+ t.string "ref", null: false
+ t.boolean "tag", null: false
+ t.string "sha", null: false
t.integer "user_id"
t.integer "deployable_id"
t.string "deployable_type"
@@ -413,7 +413,7 @@ ActiveRecord::Schema.define(version: 20160610301627) do
add_index "emails", ["user_id"], name: "index_emails_on_user_id", using: :btree
create_table "environments", force: :cascade do |t|
- t.integer "project_id"
+ t.integer "project_id", null: false
t.string "name", null: false
t.datetime "created_at"
t.datetime "updated_at"
@@ -777,37 +777,37 @@ ActiveRecord::Schema.define(version: 20160610301627) do
t.datetime "created_at"
t.datetime "updated_at"
t.integer "creator_id"
- t.boolean "issues_enabled", default: true, null: false
- t.boolean "merge_requests_enabled", default: true, null: false
- t.boolean "wiki_enabled", default: true, null: false
+ t.boolean "issues_enabled", default: true, null: false
+ t.boolean "merge_requests_enabled", default: true, null: false
+ t.boolean "wiki_enabled", default: true, null: false
t.integer "namespace_id"
- t.boolean "snippets_enabled", default: true, null: false
+ t.boolean "snippets_enabled", default: true, null: false
t.datetime "last_activity_at"
t.string "import_url"
- t.integer "visibility_level", default: 0, null: false
- t.boolean "archived", default: false, null: false
+ t.integer "visibility_level", default: 0, null: false
+ t.boolean "archived", default: false, null: false
t.string "avatar"
t.string "import_status"
t.float "repository_size", default: 0.0
- t.integer "star_count", default: 0, null: false
+ t.integer "star_count", default: 0, null: false
t.string "import_type"
t.string "import_source"
t.integer "commit_count", default: 0
t.text "import_error"
t.integer "ci_id"
- t.boolean "builds_enabled", default: true, null: false
- t.boolean "shared_runners_enabled", default: true, null: false
+ t.boolean "builds_enabled", default: true, null: false
+ t.boolean "shared_runners_enabled", default: true, null: false
t.string "runners_token"
t.string "build_coverage_regex"
- t.boolean "build_allow_git_fetch", default: true, null: false
- t.integer "build_timeout", default: 3600, null: false
+ t.boolean "build_allow_git_fetch", default: true, null: false
+ t.integer "build_timeout", default: 3600, null: false
t.boolean "pending_delete", default: false
- t.boolean "public_builds", default: true, null: false
+ t.boolean "public_builds", default: true, null: false
t.integer "pushes_since_gc", default: 0
t.boolean "last_repository_check_failed"
t.datetime "last_repository_check_at"
t.boolean "container_registry_enabled"
- t.boolean "only_allow_merge_if_build_succeeds", default: false, null: false
+ t.boolean "only_allow_merge_if_build_succeeds", default: false, null: false
t.boolean "has_external_issue_tracker"
end
diff --git a/spec/factories/deployments.rb b/spec/factories/deployments.rb
index f335a111a7d..82591604fcb 100644
--- a/spec/factories/deployments.rb
+++ b/spec/factories/deployments.rb
@@ -2,6 +2,7 @@ FactoryGirl.define do
factory :deployment, class: Deployment do
sha '97de212e80737a608d939f648d959671fb0a0142'
ref 'master'
+ tag false
environment factory: :environment