#394: add ability to set forbid_to_publish_builds_not_from
This commit is contained in:
parent
c664f77737
commit
94f1edc3e3
|
@ -606,11 +606,12 @@ class BuildList < ActiveRecord::Base
|
||||||
|
|
||||||
def valid_branch_for_publish?
|
def valid_branch_for_publish?
|
||||||
return true if save_to_platform.personal? ||
|
return true if save_to_platform.personal? ||
|
||||||
( project_version == save_to_platform.name ) ||
|
save_to_repository.forbid_to_publish_builds_not_from.blank? ||
|
||||||
( save_to_platform.main? && !save_to_repository.forbid_to_publish_builds_not_from? )
|
( project_version == save_to_repository.forbid_to_publish_builds_not_from )
|
||||||
|
|
||||||
project.repo.git.native(:branch, {}, '--contains', commit_hash).
|
project.repo.git.native(:branch, {}, '--contains', commit_hash).
|
||||||
gsub(/\*/, '').split(/\n/).map(&:strip).include?(save_to_platform.name)
|
gsub(/\*/, '').split(/\n/).map(&:strip).
|
||||||
|
include?(save_to_repository.forbid_to_publish_builds_not_from)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ class Repository < ActiveRecord::Base
|
||||||
validates :description, presence: true
|
validates :description, presence: true
|
||||||
validates :name, uniqueness: { scope: :platform_id, case_sensitive: false }, presence: true,
|
validates :name, uniqueness: { scope: :platform_id, case_sensitive: false }, presence: true,
|
||||||
format: { with: /\A[a-z0-9_\-]+\z/ }
|
format: { with: /\A[a-z0-9_\-]+\z/ }
|
||||||
|
validates :forbid_to_publish_builds_not_from, length: { maximum: 255 }
|
||||||
|
|
||||||
scope :recent, -> { order(:name) }
|
scope :recent, -> { order(:name) }
|
||||||
scope :main, -> { where(name: %w(main base)) }
|
scope :main, -> { where(name: %w(main base)) }
|
||||||
|
|
|
@ -13,8 +13,8 @@
|
||||||
|
|
||||||
- if @platform.main?
|
- if @platform.main?
|
||||||
.both
|
.both
|
||||||
.leftlist= f.label :forbid_to_publish_builds_not_from, t('activerecord.attributes.repository.forbid_to_publish_builds_not_from', name: @platform.name)
|
.leftlist= f.label :forbid_to_publish_builds_not_from
|
||||||
.rightlist= f.check_box :forbid_to_publish_builds_not_from
|
.rightlist= f.text_field :forbid_to_publish_builds_not_from
|
||||||
|
|
||||||
.both
|
.both
|
||||||
|
|
||||||
|
|
|
@ -71,4 +71,4 @@ en:
|
||||||
updated_at: Updated
|
updated_at: Updated
|
||||||
owner: Owner
|
owner: Owner
|
||||||
synchronizing_publications: Publish only on success all build_lists for each arch (checking by commit hash)
|
synchronizing_publications: Publish only on success all build_lists for each arch (checking by commit hash)
|
||||||
forbid_to_publish_builds_not_from: "Forbid to publish builds not from '%{name}' branch"
|
forbid_to_publish_builds_not_from: "Forbid to publish builds not from branch"
|
||||||
|
|
|
@ -71,4 +71,5 @@ ru:
|
||||||
updated_at: Обновлен
|
updated_at: Обновлен
|
||||||
owner: Владелец
|
owner: Владелец
|
||||||
synchronizing_publications: Публиковать сборочные листы только при успешной сборке под каждую архитектуру (проверка по хэшу коммита)
|
synchronizing_publications: Публиковать сборочные листы только при успешной сборке под каждую архитектуру (проверка по хэшу коммита)
|
||||||
forbid_to_publish_builds_not_from: "Запрет на публикацию сборок не из '%{name}' ветки"
|
forbid_to_publish_builds_not_from: "Запрет на публикацию сборок не из ветки"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
class ChangeTypeOfForbidToPublishBuildsNotFromInRepositories < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
remove_column :repositories, :forbid_to_publish_builds_not_from
|
||||||
|
add_column :repositories, :forbid_to_publish_builds_not_from, :string
|
||||||
|
execute <<-SQL
|
||||||
|
UPDATE repositories SET forbid_to_publish_builds_not_from = platforms.name
|
||||||
|
FROM platforms
|
||||||
|
WHERE repositories.platform_id = platforms.id
|
||||||
|
SQL
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
remove_column :repositories, :forbid_to_publish_builds_not_from
|
||||||
|
add_column :repositories, :forbid_to_publish_builds_not_from, :boolean, null: false, default: true
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20140528170054) do
|
ActiveRecord::Schema.define(version: 20140530193652) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -529,7 +529,7 @@ ActiveRecord::Schema.define(version: 20140528170054) do
|
||||||
t.string "name", null: false
|
t.string "name", null: false
|
||||||
t.boolean "publish_without_qa", default: true
|
t.boolean "publish_without_qa", default: true
|
||||||
t.boolean "synchronizing_publications", default: false, null: false
|
t.boolean "synchronizing_publications", default: false, null: false
|
||||||
t.boolean "forbid_to_publish_builds_not_from", default: true, null: false
|
t.string "forbid_to_publish_builds_not_from"
|
||||||
t.index ["platform_id"], :name => "index_repositories_on_platform_id"
|
t.index ["platform_id"], :name => "index_repositories_on_platform_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue