Make retried to be nullable

This commit is contained in:
Kamil Trzcinski 2017-05-09 13:14:45 +02:00
parent f2a4420d66
commit f09dcbd9bd
No known key found for this signature in database
GPG Key ID: 4505F5C7E12C6A5A
6 changed files with 8 additions and 14 deletions

View File

@ -31,7 +31,7 @@ class CommitStatus < ActiveRecord::Base
false, all_state_names - [:failed, :canceled, :manual])
end
scope :latest, -> { where(retried: false) }
scope :latest, -> { where(retried: [false, nil]) }
scope :retried, -> { where(retried: true) }
scope :ordered, -> { order(:name) }
scope :latest_ordered, -> { latest.ordered.includes(project: :namespace) }

View File

@ -22,7 +22,7 @@ module HasStatus
skipped = scope.skipped.select('count(*)').to_sql
canceled = scope.canceled.select('count(*)').to_sql
"(CASE
"(CASE
WHEN (#{builds})=(#{skipped}) THEN 'skipped'
WHEN (#{builds})=(#{success}) THEN 'success'
WHEN (#{builds})=(#{created}) THEN 'created'

View File

@ -30,8 +30,8 @@ module Ci
Ci::Build.transaction do
# mark all other builds of that name as retried
build.pipeline.builds.where(name: build.name)
.where.not(retried: true)
build.pipeline.builds.latest
.where(name: build.name)
.update_all(retried: true)
project.builds.create!(Hash[attributes])

View File

@ -3,13 +3,7 @@ class AddRetriedToCiBuild < ActiveRecord::Migration
DOWNTIME = false
disable_ddl_transaction!
def up
add_column_with_default(:ci_builds, :retried, :boolean, default: false)
end
def down
remove_column(:ci_builds, :retried)
def change
add_column(:ci_builds, :retried, :boolean)
end
end

View File

@ -20,7 +20,7 @@ class UpateRetriedForCiBuild < ActiveRecord::Migration
is_retried = Arel.sql("((#{latest_id}) != ci_builds.id)")
update_column_in_batches(:ci_builds, :retried, is_retried) do |table, query|
query.where(table[:retried].eq(false))
query.where(table[:retried].eq(nil))
end
end

View File

@ -232,7 +232,7 @@ ActiveRecord::Schema.define(version: 20170504102911) do
t.integer "lock_version"
t.string "coverage_regex"
t.integer "auto_canceled_by_id"
t.boolean "retried", default: false, null: false
t.boolean "retried"
end
add_index "ci_builds", ["commit_id", "stage_idx", "created_at"], name: "index_ci_builds_on_commit_id_and_stage_idx_and_created_at", using: :btree