Increase release tag on github(wip)

This commit is contained in:
Wedge 2015-12-29 22:22:17 +03:00
parent e4501330c7
commit 72e8faa988
11 changed files with 49 additions and 134 deletions

View File

@ -1,4 +1,4 @@
source 'https://rubygems.org'
source 'http://rubygems.org'
gem 'rails'
@ -95,12 +95,11 @@ gem 'sitemap_generator'
gem 'codemirror-rails', '~> 4.5'
source 'https://rails-assets.org' do
source 'http://rails-assets.org' do
gem 'rails-assets-notifyjs'
end
gem 'rack-utf8_sanitizer'
gem 'web-console', '~> 2.0'
#github api
gem 'github_api'

View File

@ -43,8 +43,8 @@ GIT
posix-spawn (~> 0.3.6)
GEM
remote: https://rubygems.org/
remote: https://rails-assets.org/
remote: http://rubygems.org/
remote: http://rails-assets.org/
specs:
RedCloth (4.2.9)
actionmailer (4.2.2)
@ -649,11 +649,6 @@ GEM
rack (>= 1.0.0)
warden (1.2.3)
rack (>= 1.0)
web-console (2.2.1)
activemodel (>= 4.0)
binding_of_caller (>= 0.7.2)
railties (>= 4.0)
sprockets-rails (>= 2.0, < 4.0)
webmock (1.21.0)
addressable (>= 2.3.6)
crack (>= 0.3.2)
@ -775,7 +770,6 @@ DEPENDENCIES
timecop
uglifier
underscore-rails
web-console (~> 2.0)
webmock
whenever
wikicloth

View File

@ -562,12 +562,11 @@ class BuildList < ActiveRecord::Base
include_repos_hash["container_#{bl.id}"] = insert_token_to_path(path, bl.save_to_platform)
end
git_project_address = project.git_project_address user
# git_project_address.gsub!(/^http:\/\/(0\.0\.0\.0|localhost)\:[\d]+/, 'https://abf.rosalinux.ru') unless Rails.env.production?
git_project_address = project.git_project_address
cmd_params = {
'GIT_PROJECT_ADDRESS' => git_project_address,
'PACKAGE' => project.name,
'GIT_REPO' => git_project_address,
'COMMIT_HASH' => commit_hash,
'USE_EXTRA_TESTS' => use_extra_tests?,
'SAVE_BUILDROOT' => save_buildroot?,
@ -584,7 +583,7 @@ class BuildList < ActiveRecord::Base
sha1 = build_for_platform.cached_chroot(arch.name)
cmd_params.merge!('CACHED_CHROOT_SHA1' => sha1) if sha1.present?
end
cmd_params = cmd_params.map{ |k, v| "#{k}='#{v}'" }.join(' ')
#cmd_params = cmd_params.map{ |k, v| "#{k}='#{v}'" }.join(' ')
{
id: id,

View File

@ -31,7 +31,6 @@ module CommitAndVersion
end
end
self.commit_hash = res
#self.commit_hash = project.repo.commits(project_version).try(:first).try(:id)
elsif project_version.blank? && commit_hash.present?
self.project_version = commit_hash
end

View File

@ -34,13 +34,13 @@ module Git
repo.tags.map(&:name) + repo.branches.map(&:name)
end
def find_blob_and_raw_of_spec_file(project_version)
blob = repo.tree(project_version).contents.find{ |n| n.is_a?(Grit::Blob) && n.name =~ /.spec$/ }
return unless blob
#def find_blob_and_raw_of_spec_file(project_version)
# blob = repo.tree(project_version).contents.find{ |n| n.is_a?(Grit::Blob) && n.name =~ /.spec$/ }
# return unless blob
raw = Grit::GitRuby::Repository.new(repo.path).get_raw_object_by_sha1(blob.id)
[blob, raw]
end
# raw = Grit::GitRuby::Repository.new(repo.path).get_raw_object_by_sha1(blob.id)
# [blob, raw]
#end
def create_branch(new_ref, from_ref, user)
return false if new_ref.blank? || from_ref.blank? || !(from_commit = repo.commit(from_ref))

View File

@ -6,12 +6,6 @@ module Project::DefaultBranch
include DefaultBranchable
included do
validate :check_default_branch
after_update :set_new_git_head
end
######################################
# Instance methods #
######################################
@ -19,10 +13,8 @@ module Project::DefaultBranch
# Public: Get default branch according to owner configs.
#
# Returns found String branch name.
def resolve_default_branch
return default_branch unless owner.is_a?(Group) && owner.default_branch.present?
return default_branch unless repo.branches.map(&:name).include?(owner.default_branch)
return owner.default_branch unless default_branch.present?
default_branch == 'master' ? owner.default_branch : default_branch
end
@ -33,47 +25,7 @@ module Project::DefaultBranch
#
# Returns found String branch name.
def project_version_for(save_to_platform, build_for_platform)
if repo.commits("#{save_to_platform.default_branch}").try(:first).try(:id)
save_to_platform.default_branch
elsif repo.commits("#{build_for_platform.default_branch}").try(:first).try(:id)
build_for_platform.default_branch
else
resolve_default_branch
end
return save_to_platform.default_branch if save_to_platform.name != build_for_platform.name
build_for_platform.default_branch
end
# Public: Finds default head.
#
# treeish - The String treeish.
#
# Returns found String head.
def default_head(treeish = nil) # maybe need change 'head'?
# Attention!
# repo.commit(nil) => <Grit::Commit "b6c0f81deb17590d22fc07ba0bbd4aa700256f61">
# repo.commit(nil.to_s) => nil
return treeish if treeish.present? && repo.commit(treeish).present?
if repo.branches_and_tags.map(&:name).include?(treeish || resolve_default_branch)
treeish || resolve_default_branch
else
repo.branches_and_tags[0].try(:name) || resolve_default_branch
end
end
protected
# Private: Set git head.
def set_new_git_head
if default_branch_changed? && repo.branches.map(&:name).include?(default_branch)
repo.git.send(:'symbolic-ref', {}, 'HEAD', "refs/heads/#{default_branch}")
Project.project_aliases(self).update_all default_branch: default_branch
end
end
# Private: Validation for checking that the default branch is exist.
def check_default_branch
if self.repo.branches.count > 0 && self.repo.branches.map(&:name).exclude?(self.default_branch)
errors.add :default_branch, I18n.t('activerecord.errors.project.default_branch')
end
end
end

View File

@ -1,3 +1,5 @@
require 'base64'
module Project::GithubApi
extend ActiveSupport::Concern
@ -13,10 +15,36 @@ module Project::GithubApi
Github.repos.tags user: github_get_organization, repo: name rescue nil
end
def github_branch(branch_name)
Github.repos.branch user: github_get_organization, repo: name, branch: branch_name rescue nil
end
def github_get_commit(hash)
Github.repos.commits.list user: github_get_organization, repo: name, sha: hash rescue nil
end
def github_tree(hash)
Github.git_data.trees.get user: github_get_organization, repo: name, sha: hash rescue nil
end
def find_blob_and_raw_of_spec_file(project_version)
return unless branch = github_branch(project_version)
commit_sha = branch.commit.sha
return unless root_tree = github_tree(commit_sha)
spec_file = root_tree.tree.select do |item|
item.type=="blob" and item.path =~ /.spec$/
end
return if spec_file.empty?
spec_file_sha = spec_file[0].sha
blob_data = Github.git_data.blobs.get user: github_get_organization, repo: name, sha: spec_file_sha rescue return nil
content = Base64.decode64(blob_data.content).gsub('\n', "\n")
[spec_file_sha, content]
end
def update_file(path, data, options = {})
end
def github_get_organization
return github_organization if github_organization.presence
APP_CONFIG['github_organization']

View File

@ -86,6 +86,7 @@ class MassBuild < ActiveRecord::Base
return unless start
# later with resque
arches_list = arch_names ? Arch.where(name: arch_names.split(', ')) : Arch.all
projects_list.lines.each do |name|
next if name.blank?
name.chomp!; name.strip!

View File

@ -61,7 +61,6 @@ class Project < ActiveRecord::Base
before_save -> { self.owner_uname = owner.uname if owner_uname.blank? || owner_id_changed? || owner_type_changed? }
before_create :set_maintainer
after_save :attach_to_personal_repository
after_update -> { update_path_to_project(name_was) }, if: :name_changed?
attr_accessor :url, :srpms_list, :mass_import, :add_to_repository_id, :mass_create
@ -101,12 +100,6 @@ class Project < ActiveRecord::Base
@platforms ||= repositories.map(&:platform).uniq
end
def in_main_platform?
platforms.map do |platform|
platform.platform_type
end.include?('main')
end
def admins
admins = self.collaborators.where("relations.role = 'admin'")
grs = self.groups.where("relations.role = 'admin'")
@ -125,12 +118,8 @@ class Project < ActiveRecord::Base
owner == user
end
def git_project_address auth_user
github_data.git_url
#opts = default_url_options
#opts.merge!({user: auth_user.authentication_token, password: ''}) unless self.public?
#Rails.application.routes.url_helpers.project_url(self.name_with_owner, opts) + '.git'
#path #share by NFS
def git_project_address
"git://github.com/" + github_get_organization + "/" + name + ".git"
end
def build_for(mass_build, repository_id, arch = Arch.find_by(name: 'i586'), priority = 0, increase_rt = false)
@ -170,30 +159,6 @@ class Project < ActiveRecord::Base
build_list.save
end
def get_project_tag_sha1(tag, format)
format_id = ProjectTag::FORMATS["#{tag_file_format(format)}"]
project_tag = project_tags.where(tag_name: tag.name, format_id: format_id).first
return project_tag.sha1 if project_tag && project_tag.commit_id == tag.commit.id && FileStoreService::File.new(sha1: project_tag.sha1).exist?
archive = archive_by_treeish_and_format tag.name, format
sha1 = FileStoreService::File.new(data: archive).save
return nil if sha1.blank?
if project_tag
project_tag.destroy_files_from_file_store(project_tag.sha1)
project_tag.update_attributes(sha1: sha1)
else
project_tags.create(
tag_name: tag.name,
format_id: format_id,
commit_id: tag.commit.id,
sha1: sha1
)
end
return sha1
end
def archive_by_treeish_and_format(treeish, format)
@archive ||= create_archive treeish, format
end
@ -319,25 +284,4 @@ class Project < ActiveRecord::Base
end
end
def update_path_to_project(old_name)
new_name, new_path = name, path
self.name = old_name
old_path = path
self.name = new_name
FileUtils.mv old_path, new_path, force: true if Dir.exists?(old_path)
pull_requests_old_path = File.join(APP_CONFIG['git_path'], 'pull_requests', owner.uname, old_name)
if Dir.exists?(pull_requests_old_path)
FileUtils.mv pull_requests_old_path,
File.join(APP_CONFIG['git_path'], 'pull_requests', owner.uname, new_name),
force: true
end
PullRequest.where(from_project_id: id).update_all(from_project_name: new_name)
PullRequest.where(from_project_id: id).each{ |p| p.update_relations(old_name) }
pull_requests.where('from_project_id != to_project_id').each(&:update_relations)
end
later :update_path_to_project, queue: :middle
end

View File

@ -1,5 +1,5 @@
- content_for :submenu do
- act = action_name.to_sym; contr = controller_name.to_sym; treeish = @project.default_head(params[:treeish])
- act = action_name.to_sym; contr = controller_name.to_sym;
- github_success = @project.github_data != nil
- github_base_url = @project.github_data.html_url unless not github_success
nav.navbar.navbar-default role='navigation'

View File

@ -67,6 +67,5 @@ module Rosa
config.log_redis = false
config.angular_templates.ignore_prefix = 'angularjs/templates/'
config.web_console.whitelisted_ips = '127.0.0.0/24'
end
end