Test and fix build dir errors | Address PR issues
This commit is contained in:
parent
55bcaa56e5
commit
e87cd4ac56
|
@ -66,14 +66,14 @@ def build_driver(build_config: BuildConfig) -> None:
|
|||
InfoStreamLogger('stderr'):
|
||||
run(build_config.make_recipe("PLATFORM=f1 driver"))
|
||||
|
||||
def cl_dir_setup(build_config: BuildConfig) -> str:
|
||||
def cl_dir_setup(build_config: BuildConfig) -> Optional[str]:
|
||||
"""Setup CL_DIR on build host.
|
||||
|
||||
Args:
|
||||
build_config: Build configuration to determine paths.
|
||||
|
||||
Returns:
|
||||
Path to CL_DIR directory (that is setup).
|
||||
Path to CL_DIR directory (that is setup) or `None` if invalid.
|
||||
"""
|
||||
fpga_build_postfix = f"hdk/cl/developer_designs/cl_{build_config.get_chisel_triplet()}"
|
||||
|
||||
|
@ -81,6 +81,10 @@ def cl_dir_setup(build_config: BuildConfig) -> str:
|
|||
local_awsfpga_dir = f"{get_deploy_dir()}/../platforms/f1/aws-fpga"
|
||||
|
||||
dest_build_dir = build_config.build_farm_host_dispatcher.dest_build_dir
|
||||
if not dest_build_dir:
|
||||
rootLogger.critical(f"ERROR: Invalid build dir of {dest_build_dir}")
|
||||
return None
|
||||
|
||||
dest_f1_platform_dir = f"{dest_build_dir}/platforms/f1/"
|
||||
dest_awsfpga_dir = f"{dest_f1_platform_dir}/aws-fpga"
|
||||
|
||||
|
@ -153,6 +157,9 @@ def aws_build(build_config_file: BuildConfigFile, bypassAll: bool = False, bypas
|
|||
|
||||
# 'cl_dir' holds the eventual directory in which vivado will run.
|
||||
cl_dir = cl_dir_setup(build_config)
|
||||
if not cl_dir:
|
||||
on_build_failure()
|
||||
return
|
||||
|
||||
if bypassVivado:
|
||||
build_config.build_farm_host_dispatcher.release_build_farm_host()
|
||||
|
|
|
@ -39,11 +39,14 @@ class BuildFarmHostDispatcher(metaclass=abc.ABCMeta):
|
|||
self.args = args
|
||||
self.dest_build_dir = ""
|
||||
|
||||
@abc.abstractmethod
|
||||
@property
|
||||
@staticmethod
|
||||
@abc.abstractmethod
|
||||
def NAME() -> str:
|
||||
"""Human-readable name (used as the "build-farm-type" in the YAML)."""
|
||||
"""Human-readable name (used as the "build-farm-type" in the YAML).
|
||||
|
||||
Returns:
|
||||
Human-readable name.
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
@abc.abstractmethod
|
||||
|
@ -102,10 +105,13 @@ class IPAddrBuildFarmHostDispatcher(BuildFarmHostDispatcher):
|
|||
self.dispatch_id = IPAddrBuildFarmHostDispatcher.dispatch_counter
|
||||
IPAddrBuildFarmHostDispatcher.dispatch_counter += 1
|
||||
|
||||
@property
|
||||
@staticmethod
|
||||
def NAME() -> str:
|
||||
"""Human-readable name (used as the "build-farm-type" in the YAML)."""
|
||||
"""Human-readable name (used as the "build-farm-type" in the YAML).
|
||||
|
||||
Returns:
|
||||
Human-readable name.
|
||||
"""
|
||||
return "unmanaged"
|
||||
|
||||
def parse_args(self) -> None:
|
||||
|
@ -191,10 +197,13 @@ class EC2BuildFarmHostDispatcher(BuildFarmHostDispatcher):
|
|||
self.spot_interruption_behavior = ""
|
||||
self.spot_max_price = ""
|
||||
|
||||
@property
|
||||
@staticmethod
|
||||
def NAME() -> str:
|
||||
"""Human-readable name (used as the "build-farm-type" in the YAML)."""
|
||||
"""Human-readable name (used as the "build-farm-type" in the YAML).
|
||||
|
||||
Returns:
|
||||
Human-readable name.
|
||||
"""
|
||||
return "aws-ec2"
|
||||
|
||||
def parse_args(self) -> None:
|
||||
|
@ -234,7 +243,7 @@ class EC2BuildFarmHostDispatcher(BuildFarmHostDispatcher):
|
|||
},
|
||||
],
|
||||
tags={ 'fsimbuildcluster': buildfarmprefix },
|
||||
randomsubnet=True)
|
||||
randomsubnet=True)[0]
|
||||
|
||||
def wait_on_build_farm_host_initialization(self) -> None:
|
||||
"""Wait for EC2 instance launch."""
|
||||
|
@ -251,5 +260,5 @@ class EC2BuildFarmHostDispatcher(BuildFarmHostDispatcher):
|
|||
def release_build_farm_host(self) -> None:
|
||||
""" Terminate the EC2 instance running this build. """
|
||||
instance_ids = get_instance_ids_for_instances([self.launched_instance_object])
|
||||
rootLogger.info(f"Terminating build instances {instance_ids}. Please confirm in your AWS Management Console")
|
||||
rootLogger.info(f"Terminating build instance {instance_ids}. Please confirm in your AWS Management Console")
|
||||
terminate_instances(instance_ids, dryrun=False)
|
||||
|
|
|
@ -238,7 +238,7 @@ $(repo_state): $(simulator_verilog) $(fpga_work_dir)/stamp
|
|||
$(firesim_base_dir)/../scripts/repo_state_summary.sh > $(repo_state)
|
||||
|
||||
$(fpga_work_dir)/design/$(BASE_FILE_NAME)%: $(simulator_verilog) $(fpga_work_dir)/stamp
|
||||
cp -f $(GENERATED_DIR)/*.ipgen.tcl $(@D) || :
|
||||
cp -f $(GENERATED_DIR)/*.ipgen.tcl $(@D) || true
|
||||
cp -f $(GENERATED_DIR)/$(@F) $@
|
||||
|
||||
$(fpga_driver_dir)/$(BASE_FILE_NAME)%: $(simulator_verilog) $(fpga_work_dir)/stamp
|
||||
|
|
Loading…
Reference in New Issue