def build_package(self, op_id, platform, arch, branding_variables, package_type, destination, status_channel, routing_key): platform_or_none = base.get_supported_platform_by_name(platform) if platform_or_none == None: raise BuildError('invalid platform') if not arch in platform_or_none.archs: raise BuildError('invalid arch') if not package_type in platform_or_none.package_types: raise BuildError('invalid package_type') pwd = os.getcwd() dir_name = 'build_{0}_for_{1}'.format(platform, op_id) if os.path.exists(dir_name): shutil.rmtree(dir_name) os.mkdir(dir_name) os.chdir(dir_name) arch_args = '-DOS_ARCH={0}'.format(arch) generator_args = '-DCPACK_GENERATOR={0}'.format(package_type) branding_variables_list = shlex.split(branding_variables) cmake_line = ['cmake', '../../', '-GUnix Makefiles', '-DCMAKE_BUILD_TYPE=RELEASE', generator_args, arch_args] cmake_line.extend(branding_variables_list) try: run_command(cmake_line) except subprocess.CalledProcessError as ex: os.chdir(pwd) raise ex self.send_status(status_channel, routing_key, op_id, 20, 'Building package') make_line = ['make', 'package', '-j2'] try: run_command(make_line) except subprocess.CalledProcessError as ex: os.chdir(pwd) raise ex self.send_status(status_channel, routing_key, op_id, 70, 'Stable package') in_file = open('CPackConfig.cmake', 'r') for line in in_file.readlines(): res = re.search(r'SET\(CPACK_SOURCE_PACKAGE_FILE_NAME "(.+)"\)', line) if res != None: filename = res.group(1) + '.' + base.get_extension_by_package(package_type) in_file.close() try: self.send_status(status_channel, routing_key, op_id, 80, 'Loading package to server') result = config.post_install_step(filename, destination) except Exception as ex: os.chdir(pwd) raise ex os.chdir(pwd) return result
argc = len(sys.argv) if argc > 1: op_id = sys.argv[1] else: print("Operation id not passed!") print_usage() quit() if argc > 2: platform_str = sys.argv[2] else: platform_str = base.get_os() platform_or_none = base.get_supported_platform_by_name(platform_str) if platform_or_none == None: print("Not supported platform: %s" % platform_str) print_usage() quit() if argc > 3: arch_str = sys.argv[3] else: arch_str = base.get_arch() if argc > 4: args = sys.argv[4] else: args = ''
def build_package(self, op_id, platform, arch, branding_variables, package_type, destination, status_channel, routing_key): platform_or_none = base.get_supported_platform_by_name(platform) if platform_or_none == None: raise BuildError('invalid platform') if not arch in platform_or_none.archs: raise BuildError('invalid arch') if not package_type in platform_or_none.package_types: raise BuildError('invalid package_type') pwd = os.getcwd() dir_name = 'build_{0}_for_{1}'.format(platform, op_id) if os.path.exists(dir_name): shutil.rmtree(dir_name) os.mkdir(dir_name) os.chdir(dir_name) arch_args = '-DOS_ARCH={0}'.format(arch) generator_args = '-DCPACK_GENERATOR={0}'.format(package_type) branding_variables_list = shlex.split(branding_variables) cmake_line = [ 'cmake', '../../', '-GUnix Makefiles', '-DCMAKE_BUILD_TYPE=RELEASE', generator_args, arch_args ] cmake_line.extend(branding_variables_list) try: run_command(cmake_line) except subprocess.CalledProcessError as ex: os.chdir(pwd) raise ex self.send_status(status_channel, routing_key, op_id, 20, 'Building package') make_line = ['make', 'package', '-j2'] try: run_command(make_line) except subprocess.CalledProcessError as ex: os.chdir(pwd) raise ex self.send_status(status_channel, routing_key, op_id, 70, 'Stable package') in_file = open('CPackConfig.cmake', 'r') for line in in_file.readlines(): res = re.search(r'SET\(CPACK_SOURCE_PACKAGE_FILE_NAME "(.+)"\)', line) if res != None: filename = res.group(1) + '.' + base.get_extension_by_package( package_type) in_file.close() try: self.send_status(status_channel, routing_key, op_id, 80, 'Loading package to server') result = config.post_install_step(filename, destination) except Exception as ex: os.chdir(pwd) raise ex os.chdir(pwd) return result