attr_accessor :pkginfo, :source_path
attr_accessor :pkgsvr_client
-# attr_accessor :rev_fail_projects, :rev_success_jobs
-# attr_accessor :pending_ancestor
attr_accessor :no_reverse
attr_accessor :remote_id, :remote_status, :remote_error_msg
@os = os
@type = "BUILD"
- #@resolve = false
@host_os = Utils::HOST_OS
if not @server.distmgr.nil? then
@pkgsvr_url = @server.distmgr.get_distribution(project.dist_name).pkgsvr_url
@is_rev_build_check_job = false
@is_remote_job = false
- # for internal(transferred) job
- @is_internal_job = false
+ # "verified" means that server will not check any rule
+ @is_verified = false
+ # "send_result_back" mean that server will send package file by network
+ @send_result_back = false
@dock_num = "0"
@external_pkgs = []
end
- def set_internal_job( dock_num )
- @is_internal_job = true
+ def set_transfered_job( dock_num )
+ @is_verified = true
+ @send_result_back = true
@dock_num = dock_num
end
- ## set option for waiting for resolve
- #def set_resolve_flag()
- # @resolve = true
- #end
-
-
# set force rebuild
# This make project to build
# even though there is a package of same version on pkg-server
@log.info( "New Job #{@id} is started", Log::LV_USER)
# checking build dependency
- if not @is_remote_job and not @is_internal_job and
+ if not @is_remote_job and not @is_verified and
not check_build_dependency() then
- if @is_internal_job then copy_result_files_to_master() end
@status = "ERROR"
return false
end
# clean build
if not build() then
- if @is_internal_job then copy_result_files_to_master() end
+ if @is_verified then copy_result_files_to_master() end
@status = "ERROR"
return false
lock_event
# upload
- if not @is_rev_build_check_job and not @is_internal_job and
+ if not @is_rev_build_check_job and not @send_result_back and
@parent.nil? and
not upload() then
@status = "ERROR"
end
# copy result files to transport path
- if @is_internal_job then
+ if @send_result_back then
copy_result_files_to_master()
elsif not @parent.nil? and not @is_rev_build_check_job then
copy_result_files(@parent.source_path)
# build clean
def build()
-
- ## check there are pending packages which wait for me
- ## it will return nil if not exist
- ## this process must be skip if it is sub-job
- #if not @is_rev_build_check_job and not @is_internal_job then
- # @server.cancel_lock.synchronize do
- # @pending_ancestor = get_pending_ancestor_job()
- # end
- #end
-
- #if not @pending_ancestor.nil? then
- # # resolve other pending job
- # resolve()
- #elsif @resolve then
- # # wait for being resolved by other jobs
- # # this condition must be placed after checking pending status
- # wait_resolve()
- #else
- # # build
- # build_normal()
- #end
-
# build
build_normal()
end
- ## return pending job that wait for me
- #def get_pending_ancestor_job()
- # @server.jobmgr.get_pending_jobs.each do |job|
- # # must have same distribution
- # if get_distribution_name() != job.get_distribution_name() then
- # next
- # end
-
- # if job.is_rev_fail_project(@project,@os) then
- # return job
- # end
- # end
-
- # return nil
- #end
-
-
# check whether build this job or not
# if not build, then return its compat pkgs list
def check_compatable_packages
# check reverse dependecy if not sub jobs
if not @no_reverse then
- if not @is_rev_build_check_job and not @is_internal_job and
+ if not @is_rev_build_check_job and not @is_verified and
not ReverseBuildChecker.check( self, true ).empty? then
@log.error( "Reverse-build-check failed!" )
return false
# copy binary package files and log file to transport dir
def copy_result_files_to_master()
outgoing_dir = "#{@server.transport_path}/#{@dock_num}"
+ if not File.exist? outgoing_dir then
+ FileUtils.mkdir_p outgoing_dir
+ end
@log.info( "Copying log to #{outgoing_dir}", Log::LV_USER)
file = "#{@source_path}/../log"
case cmd
when "BUILD"
handle_cmd_build( req_line, req )
- #when "RESOLVE"
- # handle_cmd_resolve( req_line, req )
when "QUERY"
handle_cmd_query( req_line, req )
when "CANCEL"
git_repos = project_name_list[0]
os = os_list[0]
- new_job = create_new_internal_job(git_repos, os, git_commit, pkg_files, dock_num, dist_name )
+ new_job = create_new_transfered_job(git_repos, os, git_commit, pkg_files, dock_num, dist_name )
if new_job.nil? then
raise BuildServerException.new("ERR006"),"Transfered-Build job"
else
private
- def create_new_internal_job( git_repos, os, git_commit, pkg_files, dock_num, dist_name )
+ def create_new_transfered_job( git_repos, os, git_commit, pkg_files, dock_num, dist_name )
prj = @parent_server.prjmgr.get_git_project( git_repos, dist_name )
if prj.nil? then
prj = @parent_server.prjmgr.create_unnamed_git_project( git_repos, dist_name )
end
new_job = prj.create_new_job(os)
- new_job.set_internal_job( dock_num )
+ new_job.set_transfered_job( dock_num )
new_job.git_commit = git_commit
incoming_dir = "#{@parent_server.transport_path}/#{dock_num}"
pkg_files.each do |file|