end
client = BuildCommClient.create( result[0], result[1], nil, 0 )
if not client.nil? then
- client.send "BUILD|GIT|#{option[:project]}|#{option[:passwd]}|#{option[:os]}|#{option[:async]}|#{option[:noreverse]}|#{option[:dist]}|#{option[:user]}|#{option[:verbose]}"
+ client.send "BUILD|GIT|#{option[:project]}|#{option[:passwd]}|#{option[:os]}|#{option[:async]}|#{option[:noreverse]}|#{option[:dist]}|#{option[:user]}|#{option[:rebuild]}"
if not client.print_stream then
puts "ERROR: #{client.get_error_msg()}"
end
puts "Connection to server failed!"
exit 1
end
-# when "resolve"
-# result = Utils.parse_server_addr(option[:domain])
-# if result.nil? then
-# puts "Server address is incorrect. (#{option[:domain]})"
-# puts "Tune as following format."
-# puts " <ip>:<port>"
-# exit 1
-# end
-# client = BuildCommClient.create( result[0], result[1], nil, 0 )
-# if not client.nil? then
-# client.send "RESOLVE|GIT|#{option[:project]}|#{option[:passwd]}|#{option[:os]}|#{option[:async]}|#{option[:dist]}|#{option[:user]}|#{option[:verbose]}"
-# if not client.print_stream then
-# puts "ERROR: #{client.get_error_msg()}"
-# end
-# client.terminate
-# end
when "query"
result = Utils.parse_server_addr(option[:domain])
if result.nil? then
+* 2.1.8
+- Modified to use hard-link instead of copying
+- Removed "verbose" option in build-cli
+== donghee yang <donghee.yang@samsung.com> 2013-03-25
* 2.1.7
- add log for debug
== hyoun jiil <jiil.hyoun@samsung.com> 2013-03-21
Source : dibs
-Version :2.1.7
+Version :2.1.8
Maintainer : taejun ha<taejun.ha@samsung.com>, jiil hyoun <jiil.hyoun@samsung.com>, donghyuk yang <donghyouk.yang@samsung.com>, donghee yang <donghee.yang@samsung.com>, sungmin kim <dev.sungmin.kim@samsung.com
Package : dibs
require 'utils'
class BuildClientUsage
- BUILD="build-cli build -N <project name> -d <server address> [-o <os>] [-w <password>] [--async] [-D <distribution name>] [-U user-email] [-V]"
- #RESOLVE="build-cli resolve -N <project name> -d <server address> [-o <os>] [-w <password>] [--async] [-D <distribution name>] [-U user-email] [-V]"
+ BUILD="build-cli build -N <project name> -d <server address> [-o <os>] [-w <password>] [--async] [-D <distribution name>] [-U user-email]"
QUERY="build-cli query -d <server address>"
QUERY_SYSTEM="build-cli query-system -d <server address>"
QUERY_PROJECT="build-cli query-project -d <server address>"
raise ArgumentError, "Usage: " + BuildClientUsage::BUILD
end
-# when "resolve" then
-# if options[:project].nil? or options[:project].empty? or
-# options[:domain].nil? or options[:domain].empty? then
-# raise ArgumentError, "Usage: " + BuildClientUsage::RESOLVE
-# end
-#
when "query" then
if options[:domain].nil? or options[:domain].empty? then
raise ArgumentError, "Usage: " + BuildClientUsage::QUERY
options[:noreverse] = "YES"
end
+ options[:rebuild] = "NO"
+ opts.on( '--rebuild', 'do not check package version' ) do
+ options[:rebuild] = "YES"
+ end
+
opts.on( '-j', '--job <job number>', 'job number' ) do|job|
options[:job] = job
end
options[:user] = user
end
- options[:verbose] = "NO"
- opts.on( '-V', '--verbose', 'verbose mode' ) do
- options[:verbose] = "YES"
- end
-
opts.on( '-h', '--help', 'display help' ) do
- opts.help.split("\n").each {|op| puts op if not op.include? "--noreverse"}
+ opts.help.split("\n").each {|op| puts op if not op.include? "--noreverse" and not op.include? "--rebuild"}
exit
end
end
+ # This make project to build
+ # even though there is a package of same version on pkg-server
+ def set_force_rebuild(value)
+ @sub_jobs.each do |sub|
+ sub.set_force_rebuild(value)
+ end
+ end
+
#
def init
@job_root = "#{@server.path}/jobs/#{@id}"
# send build request
@log.info( "Sending build request to remote server...", Log::LV_USER )
result, result_files = send_build_request(git_repos, os, is_rev_build,
- srcinfo, no_reverse, local_pkgs, dock, dist_name, user_email, @log.is_verbose)
+ srcinfo, no_reverse, local_pkgs, dock, dist_name, user_email)
@log.info( "Receiving log file from remote server...", Log::LV_USER )
if not receive_file_from_remote( "#{source_path}/../remote_log", dock ) then
# send build request
protected
- def send_build_request(git_repos, os, is_rev_build, commit, no_reverse, local_pkgs, dock, dist_name, user_email, verbose)
+ def send_build_request(git_repos, os, is_rev_build, commit, no_reverse, local_pkgs, dock, dist_name, user_email)
result_files = []
client = BuildCommClient.create( @addr, @port, @log )
# send
# 0 | 1 | 2 | 3 | 4| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14
- # format: BUILD|GIT|repository|passwd|os|async|no_reverse|dist_name|user_email|verbose|internal|rev-build|commit|pkgs|dock_num
- # value : BUILD|GIT|repository| |os|NO |no_reverse|dist_name|user_email|verbose|YES |rev-build|commit|pkgs|dock_num
+ # format: BUILD|GIT|repository|passwd|os|async|no_reverse|dist_name|user_email|rebuild|internal|rev-build|commit|pkgs|dock_num
+ # value : BUILD|GIT|repository| |os|NO |no_reverse|dist_name|user_email|YES |YES |rev-build|commit|pkgs|dock_num
result = true
commit = commit.nil? ? "":commit
pkg_list = local_pkg_names.join(",")
rev = is_rev_build ? "YES":"NO"
- msg = "BUILD|GIT|#{git_repos}||#{os}|NO|#{no_reverse}|#{dist_name}|#{user_email}|#{verbose}|YES|#{rev}|#{commit}|#{pkg_list}|#{dock}"
+ msg = "BUILD|GIT|#{git_repos}||#{os}|NO|#{no_reverse}|#{dist_name}|#{user_email}|YES|YES|#{rev}|#{commit}|#{pkg_list}|#{dock}"
result = client.send( msg )
if not result then
@log.error( "Communication failed! #{client.get_error_msg()}", Log::LV_USER)
end
# 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14
- # Case1. BUILD|GIT|project_name|passwd|os_list|async|no_reverse|dist_name|user_email|verbose
- # Case2. BUILD|GIT|git_repos | |os |async|no_reverse|dist_name|user_email|verbose|internal|rev_build|commit|pkgs|dock_num
+ # Case1. BUILD|GIT|project_name|passwd|os_list|async|no_reverse|dist_name|user_email|rebuild
+ # Case2. BUILD|GIT|git_repos | |os |async|no_reverse|dist_name|user_email|rebuild|internal|rev_build|commit|pkgs|dock_num
# parse
project_name_list = tok[2].split(",")
no_reverse = tok[6].eql? "YES"
dist_name = (not tok[7].nil? and not tok[7].empty?) ? tok[7].strip : ""
user_email = (not tok[8].nil? and not tok[8].empty?) ? tok[8].strip : ""
- verbose = tok[9].eql? "YES"
+ rebuild = tok[9].eql? "YES"
is_internal = tok[10].eql? "YES"
rev_job = tok[11].eql? "YES"
git_commit = (not tok[12].nil? and not tok[12].empty?) ? tok[12] : nil
# check reverse build
if no_reverse then new_job.set_no_reverse end
+ # set force rebuild if needed
+ if rebuild then new_job.set_force_rebuild(true) end
+
@parent_server.jobmgr.commit_job(new_job)
# create logger and set
if async then
- new_job.create_logger( nil, verbose)
+ new_job.create_logger( nil, false)
BuildCommServer.send(req,"Info: Added new job \"#{new_job.id}\" for #{new_job.os}!")
if not @parent_server.job_log_url.empty? then
BuildCommServer.send(req,"Info: * Log URL : #{@parent_server.job_log_url}/#{new_job.id}/log")
BuildCommServer.send_end(req)
BuildCommServer.disconnect(req)
else
- logger = new_job.create_logger( req, verbose)
+ logger = new_job.create_logger( req, false)
logger.info( "Added new job \"#{new_job.id}\" for #{new_job.os}!", Log::LV_USER)
if not @parent_server.job_log_url.empty? then
logger.info( " * Log URL : #{@parent_server.job_log_url}/#{new_job.id}/log", Log::LV_USER)
end
- ## "RESOLVE"
- #def handle_cmd_resolve( line, req )
- # @log.info "Received REQ: #{line}"
-
- # begin
- # handle_cmd_resolve_internal( line, req )
- # rescue BuildServerException => e
- # @log.error(e.message)
- # BuildCommServer.send(req, e.err_message())
- # BuildCommServer.send_end(req)
- # BuildCommServer.disconnect(req)
- # end
-
- # @log.info "Handled REQ: #{line}"
- #end
-
-
- #def handle_cmd_resolve_internal( line ,req)
- # tok = line.split("|").map { |x| x.strip }
- # if tok.count < 3 then
- # raise BuildServerException.new("ERR001"), line
- # end
-
- # case tok[1]
- # # RESOLVE|GIT|project_name|passwd|os|async|dist_name|user_email|verbose
- # when "GIT"
-
- # # parse
- # project_name=tok[2]
- # passwd=tok[3]
- # os=tok[4]
- # async = tok[5].eql? "YES"
- # dist_name = tok[6]
- # user_email = (not tok[7].nil? and not tok[7].empty?) ? tok[7].strip : ""
- # verbose = tok[8].eql? "YES"
- # if (dist_name.nil? or dist_name.empty?) then
- # dist_name = @parent_server.distmgr.get_default_distribution_name()
- # end
-
- # # check distribution
- # check_distribution(dist_name, req)
-
- # # check project
- # prj = check_project_exist(project_name, dist_name, req)
-
- # # check passwd
- # check_project_password(prj, passwd, req)
-
- # # check os
- # os_list = check_supported_os( [os] , req )
- # os = os_list[0]
-
- # # check user email
- # user_id = @parent_server.check_user_id_from_email( user_email )
- # if user_id == -1 then
- # raise BuildServerException.new("ERR004"), user_email
- # end
-
- # # check user accessable
- # if not check_project_user_id(project_name,dist_name,user_id) then
- # raise BuildServerException.new("ERR005"), "#{user_email} -> #{project_name}"
- # end
-
- # # create new job
- # new_job = create_new_job( project_name, os, dist_name )
- # if new_job.nil? then
- # raise BuildServerException.new("ERR006"), "Resolve job #{project_name} #{os}"
- # end
- # @log.info "Received a request for resolving this project : #{project_name}, #{os}"
-
- # new_job.user_id = user_id
-
- # # resolve
- # new_job.set_resolve_flag()
-
- # # create logger and set
- # if async then
- # new_job.create_logger( nil, verbose)
- # BuildCommServer.send(req,"Info: Added new job \"#{new_job.id}\" for #{new_job.os}!")
- # if not @parent_server.job_log_url.empty? then
- # BuildCommServer.send(req,"Info: * Log URL : #{@parent_server.job_log_url}/#{new_job.id}/log")
- # end
- # BuildCommServer.send(req,"Info: Above job(s) will be processed asynchronously!")
- # BuildCommServer.send_end(req)
- # BuildCommServer.disconnect(req)
- # else
- # logger = new_job.create_logger( req, verbose)
- # logger.info( "Added new job \"#{new_job.id}\" for #{new_job.os}!", Log::LV_USER)
- # if not @parent_server.job_log_url.empty? then
- # logger.info( " * Log URL : #{@parent_server.job_log_url}/#{new_job.id}/log", Log::LV_USER)
- # end
- # end
-
- # @parent_server.jobmgr.add_job( new_job )
- # else
- # raise BuildServerException.new("ERR001"), line
- # end
- #end
-
-
# "QUERY"
def handle_cmd_query( line, req )
begin