""" .NET Core CLI Package Workflow """ from aws_lambda_builders.workflow import BaseWorkflow, BuildDirectory, BuildInSourceSupport, Capability from .actions import GlobalToolInstallAction, RunPackageAction from .dotnetcli import SubprocessDotnetCLI from .dotnetcli_resolver import DotnetCliResolver from .utils import OSUtils class DotnetCliPackageWorkflow(BaseWorkflow): """ A Lambda builder workflow that knows to build and package .NET Core Lambda functions """ NAME = "DotnetCliPackageBuilder" CAPABILITY = Capability(language="dotnet", dependency_manager="cli-package", application_framework=None) DEFAULT_BUILD_DIR = BuildDirectory.SOURCE BUILD_IN_SOURCE_SUPPORT = BuildInSourceSupport.EXCLUSIVELY_SUPPORTED def __init__(self, source_dir, artifacts_dir, scratch_dir, manifest_path, runtime=None, mode=None, **kwargs): super(DotnetCliPackageWorkflow, self).__init__( source_dir, artifacts_dir, scratch_dir, manifest_path, runtime=runtime, mode=mode, **kwargs ) options = kwargs["options"] if "options" in kwargs else {} subprocess_dotnetcli = SubprocessDotnetCLI(os_utils=OSUtils()) dotnetcli_install = GlobalToolInstallAction(subprocess_dotnet=subprocess_dotnetcli) dotnetcli_deployment = RunPackageAction( source_dir, subprocess_dotnet=subprocess_dotnetcli, artifacts_dir=artifacts_dir, options=options, mode=mode, architecture=self.architecture, ) self.actions = [dotnetcli_install, dotnetcli_deployment] def get_resolvers(self): return [DotnetCliResolver(executable_search_paths=self.executable_search_paths)]