diff options
Diffstat (limited to 'db')
6 files changed, 155 insertions, 5 deletions
diff --git a/db/fixtures/development/17_cycle_analytics.rb b/db/fixtures/development/17_cycle_analytics.rb index 6d5a28c2e81..46cf0fbd805 100644 --- a/db/fixtures/development/17_cycle_analytics.rb +++ b/db/fixtures/development/17_cycle_analytics.rb @@ -24,30 +24,37 @@ class Gitlab::Seeder::CycleAnalytics def seed! Sidekiq::Testing.inline! do issues = create_issues(@project) + print '.' # Stage 1 Timecop.travel 5.days.from_now add_milestones_and_list_labels(issues) + print '.' # Stage 2 Timecop.travel 5.days.from_now branches = mention_in_commits(issues) + print '.' # Stage 3 Timecop.travel 5.days.from_now merge_requests = create_merge_requests_closing_issues(issues, branches) + print '.' # Stage 4 Timecop.travel 5.days.from_now run_builds(merge_requests) + print '.' # Stage 5 Timecop.travel 5.days.from_now merge_merge_requests(merge_requests) + print '.' # Stage 6 / 7 Timecop.travel 5.days.from_now deploy_to_production(merge_requests) + print '.' end print '.' @@ -101,8 +108,14 @@ class Gitlab::Seeder::CycleAnalytics } commit_sha = Gitlab::Git::Blob.commit(issue.project.repository, options) - commit = issue.project.repository.commit(commit_sha) - commit.create_cross_references! + issue.project.repository.commit(commit_sha) + + + GitPushService.new(issue.project, + @user, + oldrev: issue.project.repository.commit("master").sha, + newrev: commit_sha, + ref: 'refs/heads/master').execute branch_name end @@ -162,10 +175,12 @@ end Gitlab::Seeder.quiet do if ENV['SEED_CYCLE_ANALYTICS'] - seeder = Gitlab::Seeder::CycleAnalytics.new(Project.find(1)) + Project.all.each do |project| + seeder = Gitlab::Seeder::CycleAnalytics.new(project) seeder.seed! + end elsif ENV['CYCLE_ANALYTICS_PERF_TEST'] - seeder = Gitlab::Seeder::CycleAnalytics.new(Project.first, perf: true) + seeder = Gitlab::Seeder::CycleAnalytics.new(Project.order(:id).first, perf: true) seeder.seed! else puts "Not running the cycle analytics seed file. Use the `SEED_CYCLE_ANALYTICS` environment variable to enable it." diff --git a/db/migrate/20160915042921_create_merge_requests_closing_issues.rb b/db/migrate/20160915042921_create_merge_requests_closing_issues.rb new file mode 100644 index 00000000000..bc0814eeaeb --- /dev/null +++ b/db/migrate/20160915042921_create_merge_requests_closing_issues.rb @@ -0,0 +1,34 @@ +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class CreateMergeRequestsClosingIssues < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = true + + # When a migration requires downtime you **must** uncomment the following + # constant and define a short and easy to understand explanation as to why the + # migration requires downtime. + DOWNTIME_REASON = 'Adding foreign keys' + + # When using the methods "add_concurrent_index" or "add_column_with_default" + # you must disable the use of transactions as these methods can not run in an + # existing transaction. When using "add_concurrent_index" make sure that this + # method is the _only_ method called in the migration, any other changes + # should go in a separate migration. This ensures that upon failure _only_ the + # index creation fails and can be retried or reverted easily. + # + # To disable transactions uncomment the following line and remove these + # comments: + # disable_ddl_transaction! + + def change + create_table :merge_requests_closing_issues do |t| + t.references :merge_request, foreign_key: true, null: false + t.references :issue, foreign_key: true, null: false + + t.timestamps null: false + end + end +end diff --git a/db/migrate/20160915061248_add_production_deploy_time_to_merge_request_metrics.rb b/db/migrate/20160915061248_add_production_deploy_time_to_merge_request_metrics.rb new file mode 100644 index 00000000000..34dacfc994b --- /dev/null +++ b/db/migrate/20160915061248_add_production_deploy_time_to_merge_request_metrics.rb @@ -0,0 +1,29 @@ +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class AddProductionDeployTimeToMergeRequestMetrics < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + # When a migration requires downtime you **must** uncomment the following + # constant and define a short and easy to understand explanation as to why the + # migration requires downtime. + # DOWNTIME_REASON = '' + + # When using the methods "add_concurrent_index" or "add_column_with_default" + # you must disable the use of transactions as these methods can not run in an + # existing transaction. When using "add_concurrent_index" make sure that this + # method is the _only_ method called in the migration, any other changes + # should go in a separate migration. This ensures that upon failure _only_ the + # index creation fails and can be retried or reverted easily. + # + # To disable transactions uncomment the following line and remove these + # comments: + # disable_ddl_transaction! + + def change + add_column :merge_request_metrics, :first_deployed_to_production_at, :datetime + end +end diff --git a/db/migrate/20160915072217_add_first_mentioned_in_commit_time_to_issue_metrics.rb b/db/migrate/20160915072217_add_first_mentioned_in_commit_time_to_issue_metrics.rb new file mode 100644 index 00000000000..6c1a388ff3f --- /dev/null +++ b/db/migrate/20160915072217_add_first_mentioned_in_commit_time_to_issue_metrics.rb @@ -0,0 +1,29 @@ +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class AddFirstMentionedInCommitTimeToIssueMetrics < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + # When a migration requires downtime you **must** uncomment the following + # constant and define a short and easy to understand explanation as to why the + # migration requires downtime. + # DOWNTIME_REASON = '' + + # When using the methods "add_concurrent_index" or "add_column_with_default" + # you must disable the use of transactions as these methods can not run in an + # existing transaction. When using "add_concurrent_index" make sure that this + # method is the _only_ method called in the migration, any other changes + # should go in a separate migration. This ensures that upon failure _only_ the + # index creation fails and can be retried or reverted easily. + # + # To disable transactions uncomment the following line and remove these + # comments: + # disable_ddl_transaction! + + def change + add_column :issue_metrics, :first_mentioned_in_commit_at, :datetime + end +end diff --git a/db/migrate/20160915081353_add_latest_build_time_to_merge_request_metrics.rb b/db/migrate/20160915081353_add_latest_build_time_to_merge_request_metrics.rb new file mode 100644 index 00000000000..b413e6103c9 --- /dev/null +++ b/db/migrate/20160915081353_add_latest_build_time_to_merge_request_metrics.rb @@ -0,0 +1,30 @@ +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class AddLatestBuildTimeToMergeRequestMetrics < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + # When a migration requires downtime you **must** uncomment the following + # constant and define a short and easy to understand explanation as to why the + # migration requires downtime. + # DOWNTIME_REASON = '' + + # When using the methods "add_concurrent_index" or "add_column_with_default" + # you must disable the use of transactions as these methods can not run in an + # existing transaction. When using "add_concurrent_index" make sure that this + # method is the _only_ method called in the migration, any other changes + # should go in a separate migration. This ensures that upon failure _only_ the + # index creation fails and can be retried or reverted easily. + # + # To disable transactions uncomment the following line and remove these + # comments: + # disable_ddl_transaction! + + def change + add_column :merge_request_metrics, :latest_build_started_at, :datetime + add_column :merge_request_metrics, :latest_build_finished_at, :datetime + end +end diff --git a/db/schema.rb b/db/schema.rb index 2c380de3d50..26d49e7b261 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20160901141443) do +ActiveRecord::Schema.define(version: 20160915081353) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -442,6 +442,7 @@ ActiveRecord::Schema.define(version: 20160901141443) do t.datetime "first_added_to_board_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.datetime "first_mentioned_in_commit_at" end add_index "issue_metrics", ["issue_id"], name: "index_issue_metrics", using: :btree @@ -596,6 +597,9 @@ ActiveRecord::Schema.define(version: 20160901141443) do t.datetime "first_closed_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.datetime "first_deployed_to_production_at" + t.datetime "latest_build_started_at" + t.datetime "latest_build_finished_at" end add_index "merge_request_metrics", ["merge_request_id"], name: "index_merge_request_metrics", using: :btree @@ -641,6 +645,13 @@ ActiveRecord::Schema.define(version: 20160901141443) do add_index "merge_requests", ["title"], name: "index_merge_requests_on_title", using: :btree add_index "merge_requests", ["title"], name: "index_merge_requests_on_title_trigram", using: :gin, opclasses: {"title"=>"gin_trgm_ops"} + create_table "merge_requests_closing_issues", force: :cascade do |t| + t.integer "merge_request_id", null: false + t.integer "issue_id", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + create_table "milestones", force: :cascade do |t| t.string "title", null: false t.integer "project_id", null: false @@ -1170,6 +1181,8 @@ ActiveRecord::Schema.define(version: 20160901141443) do add_foreign_key "lists", "boards" add_foreign_key "lists", "labels" add_foreign_key "merge_request_metrics", "merge_requests" + add_foreign_key "merge_requests_closing_issues", "issues" + add_foreign_key "merge_requests_closing_issues", "merge_requests" add_foreign_key "personal_access_tokens", "users" add_foreign_key "protected_branch_merge_access_levels", "protected_branches" add_foreign_key "protected_branch_push_access_levels", "protected_branches" |