├── .coveragerc ├── .flake8 ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ ├── feature_request.md │ └── other.md ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml ├── labeler.yml └── workflows │ ├── README.md │ ├── build.yml │ ├── close-issue-on-release.yml │ ├── codeql.yml │ └── pr-labeler.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── DESIGN.md ├── LICENSE ├── MANIFEST.in ├── Makefile ├── NOTICE ├── README.md ├── aws_lambda_builders ├── __init__.py ├── __main__.py ├── actions.py ├── architecture.py ├── binary_path.py ├── builder.py ├── exceptions.py ├── path_resolver.py ├── registry.py ├── utils.py ├── validator.py ├── workflow.py └── workflows │ ├── __init__.py │ ├── custom_make │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── exceptions.py │ ├── make.py │ ├── utils.py │ ├── validator.py │ └── workflow.py │ ├── dotnet_clipackage │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── dotnetcli.py │ ├── dotnetcli_resolver.py │ ├── utils.py │ └── workflow.py │ ├── go_modules │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── builder.py │ ├── utils.py │ ├── validator.py │ └── workflow.py │ ├── java │ ├── __init__.py │ ├── actions.py │ └── utils.py │ ├── java_gradle │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── gradle.py │ ├── gradle_resolver.py │ ├── gradle_validator.py │ ├── resources │ │ └── lambda-build-init.gradle │ └── workflow.py │ ├── java_maven │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── maven.py │ ├── maven_resolver.py │ ├── maven_validator.py │ └── workflow.py │ ├── nodejs_npm │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── exceptions.py │ ├── npm.py │ ├── utils.py │ └── workflow.py │ ├── nodejs_npm_esbuild │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── esbuild.py │ ├── exceptions.py │ └── workflow.py │ ├── python_pip │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── compat.py │ ├── exceptions.py │ ├── packager.py │ ├── utils.py │ ├── validator.py │ └── workflow.py │ ├── ruby_bundler │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── bundler.py │ ├── utils.py │ └── workflow.py │ └── rust_cargo │ ├── DESIGN.md │ ├── __init__.py │ ├── actions.py │ ├── cargo_lambda.py │ ├── exceptions.py │ ├── feature_flag.py │ ├── utils.py │ └── workflow.py ├── conftest.py ├── designs └── Path_Resolver_DESIGN.md ├── pyproject.toml ├── requirements ├── base.txt ├── dev.txt └── python_pip.txt ├── setup.cfg ├── setup.py └── tests ├── __init__.py ├── functional ├── .gitkeep ├── __init__.py ├── test_actions.py ├── test_builder.py ├── test_cli.py ├── test_utils.py ├── testdata │ ├── __init__.py │ ├── cwd.py │ ├── empty_subfolders │ │ └── sub_folder │ │ │ └── sub_folder │ │ │ └── test_file.txt │ ├── multiple_files │ │ ├── sub_folder │ │ │ └── test_file3.txt │ │ ├── test_file.txt │ │ └── test_file2.txt │ ├── path_reversal_uxix.tgz │ ├── path_reversal_win.tgz │ ├── single_file │ │ └── test_file.txt │ ├── test.tgz │ └── workflows │ │ ├── __init__.py │ │ └── hello_workflow │ │ ├── __init__.py │ │ └── write_hello.py └── workflows │ ├── __init__.py │ ├── go_modules │ └── test_go_utils.py │ ├── java │ ├── __init__.py │ └── test_java_utils.py │ ├── nodejs_npm │ ├── test_data │ │ ├── test.json │ │ └── test.tgz │ └── test_utils.py │ ├── provided_make │ ├── __init__.py │ └── test_utils.py │ ├── python_pip │ ├── __init__.py │ ├── test_packager.py │ └── test_utils.py │ └── ruby_bundler │ ├── test_data │ └── test.tgz │ └── test_ruby_utils.py ├── integration ├── .gitkeep ├── __init__.py └── workflows │ ├── __init__.py │ ├── common_test_utils.py │ ├── custom_make │ ├── test_custom_make.py │ └── testdata │ │ ├── makefile-in-different-working-directory │ │ ├── Makefile │ │ └── source_code │ │ │ ├── __init__.py │ │ │ ├── main.py │ │ │ └── requirements-requests.txt │ │ └── makefile-root │ │ ├── Makefile │ │ ├── __init__.py │ │ ├── main.py │ │ └── requirements-requests.txt │ ├── dotnet_clipackage │ ├── test_dotnet.py │ └── testdata │ │ ├── CustomRuntime6 │ │ ├── CustomRuntime6.csproj │ │ ├── Function.cs │ │ └── aws-lambda-tools-defaults.json │ │ ├── CustomRuntime8 │ │ ├── CustomRuntime8.csproj │ │ ├── Function.cs │ │ └── aws-lambda-tools-defaults.json │ │ ├── WithDefaultsFile6 │ │ ├── Function.cs │ │ ├── WithDefaultsFile.csproj │ │ └── aws-lambda-tools-defaults.json │ │ └── WithDefaultsFile8 │ │ ├── Function.cs │ │ ├── WithDefaultsFile.csproj │ │ └── aws-lambda-tools-defaults.json │ ├── go_modules │ ├── __init__.py │ ├── test_go.py │ ├── testdata │ │ ├── broken-deps │ │ │ ├── go.mod │ │ │ └── main.go │ │ ├── nested_build_folder │ │ │ ├── cmd │ │ │ │ └── helloWorld │ │ │ │ │ └── main.go │ │ │ ├── go.mod │ │ │ └── go.sum │ │ ├── no-deps-copy │ │ │ ├── go.mod │ │ │ └── main.go │ │ ├── no-deps │ │ │ ├── go.mod │ │ │ └── main.go │ │ └── with-deps │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ └── utils.py │ ├── java_gradle │ ├── test_java_gradle.py │ └── testdata │ │ ├── multi-build │ │ ├── java11 │ │ │ ├── with-deps-inter-module │ │ │ │ ├── build.gradle │ │ │ │ ├── common │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── aws │ │ │ │ │ │ └── lambdabuilders │ │ │ │ │ │ └── Foo.java │ │ │ │ ├── lambda1 │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── aws │ │ │ │ │ │ └── lambdabuilders │ │ │ │ │ │ └── Lambda1_Main.java │ │ │ │ ├── lambda2 │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── aws │ │ │ │ │ │ └── lambdabuilders │ │ │ │ │ │ └── Lambda2_Main.java │ │ │ │ └── settings.gradle │ │ │ └── with-deps │ │ │ │ ├── build.gradle │ │ │ │ ├── lambda1 │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Lambda1_Main.java │ │ │ │ ├── lambda2 │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Lambda2_Main.java │ │ │ │ └── settings.gradle │ │ ├── java17 │ │ │ ├── with-deps-inter-module │ │ │ │ ├── build.gradle │ │ │ │ ├── common │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── aws │ │ │ │ │ │ └── lambdabuilders │ │ │ │ │ │ └── Foo.java │ │ │ │ ├── lambda1 │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── aws │ │ │ │ │ │ └── lambdabuilders │ │ │ │ │ │ └── Lambda1_Main.java │ │ │ │ ├── lambda2 │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── aws │ │ │ │ │ │ └── lambdabuilders │ │ │ │ │ │ └── Lambda2_Main.java │ │ │ │ └── settings.gradle │ │ │ └── with-deps │ │ │ │ ├── build.gradle │ │ │ │ ├── lambda1 │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Lambda1_Main.java │ │ │ │ ├── lambda2 │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Lambda2_Main.java │ │ │ │ └── settings.gradle │ │ ├── java21 │ │ │ ├── with-deps-inter-module │ │ │ │ ├── build.gradle │ │ │ │ ├── common │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── aws │ │ │ │ │ │ └── lambdabuilders │ │ │ │ │ │ └── Foo.java │ │ │ │ ├── lambda1 │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── aws │ │ │ │ │ │ └── lambdabuilders │ │ │ │ │ │ └── Lambda1_Main.java │ │ │ │ ├── lambda2 │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── aws │ │ │ │ │ │ └── lambdabuilders │ │ │ │ │ │ └── Lambda2_Main.java │ │ │ │ └── settings.gradle │ │ │ └── with-deps │ │ │ │ ├── build.gradle │ │ │ │ ├── lambda1 │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Lambda1_Main.java │ │ │ │ ├── lambda2 │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Lambda2_Main.java │ │ │ │ └── settings.gradle │ │ └── java8 │ │ │ ├── with-deps-inter-module │ │ │ ├── build.gradle │ │ │ ├── common │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Foo.java │ │ │ ├── lambda1 │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Lambda1_Main.java │ │ │ ├── lambda2 │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Lambda2_Main.java │ │ │ └── settings.gradle │ │ │ └── with-deps │ │ │ ├── build.gradle │ │ │ ├── lambda1 │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Lambda1_Main.java │ │ │ ├── lambda2 │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Lambda2_Main.java │ │ │ └── settings.gradle │ │ └── single-build │ │ ├── java11 │ │ ├── layer │ │ │ ├── build.gradle │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── CommonCode.java │ │ ├── with-deps-broken │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-deps-gradlew │ │ │ ├── build.gradle │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-deps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-layer-deps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-resources │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Main.java │ │ │ │ └── resources │ │ │ │ └── some_data.txt │ │ └── with-test-deps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ ├── java17 │ │ ├── layer │ │ │ ├── build.gradle │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── CommonCode.java │ │ ├── with-deps-broken │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-deps-gradlew │ │ │ ├── build.gradle │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-deps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-layer-deps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-resources │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Main.java │ │ │ │ └── resources │ │ │ │ └── some_data.txt │ │ └── with-test-deps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ ├── java21 │ │ ├── layer │ │ │ ├── build.gradle │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── CommonCode.java │ │ ├── with-deps-broken │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-deps-gradlew │ │ │ ├── build.gradle │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-deps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-layer-deps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-resources │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Main.java │ │ │ │ └── resources │ │ │ │ └── some_data.txt │ │ └── with-test-deps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ └── java8 │ │ ├── layer │ │ ├── build.gradle │ │ ├── settings.gradle │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── CommonCode.java │ │ ├── with-deps-broken │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ ├── with-deps-gradlew │ │ ├── build.gradle │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ ├── with-deps │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ ├── with-layer-deps │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ ├── with-resources │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ │ └── resources │ │ │ └── some_data.txt │ │ └── with-test-deps │ │ ├── build.gradle │ │ └── src │ │ └── main │ │ └── java │ │ └── aws │ │ └── lambdabuilders │ │ └── Main.java │ ├── java_maven │ ├── test_java_maven.py │ └── testdata │ │ └── single-build │ │ ├── java11 │ │ ├── layer │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── CommonCode.java │ │ ├── no-deps │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Main.java │ │ │ │ └── resources │ │ │ │ └── some_data.txt │ │ ├── with-deps-broken │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-deps │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Main.java │ │ │ │ └── resources │ │ │ │ └── some_data.txt │ │ └── with-layer-deps │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ ├── java17 │ │ ├── layer │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── CommonCode.java │ │ ├── no-deps │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Main.java │ │ │ │ └── resources │ │ │ │ └── some_data.txt │ │ ├── with-deps-broken │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-deps │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Main.java │ │ │ │ └── resources │ │ │ │ └── some_data.txt │ │ └── with-layer-deps │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ ├── java21 │ │ ├── layer │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── CommonCode.java │ │ ├── no-deps │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Main.java │ │ │ │ └── resources │ │ │ │ └── some_data.txt │ │ ├── with-deps-broken │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ ├── with-deps │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── aws │ │ │ │ │ └── lambdabuilders │ │ │ │ │ └── Main.java │ │ │ │ └── resources │ │ │ │ └── some_data.txt │ │ └── with-layer-deps │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ └── java8 │ │ ├── layer │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── CommonCode.java │ │ ├── no-deps │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ │ └── resources │ │ │ └── some_data.txt │ │ ├── with-deps-broken │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── aws │ │ │ └── lambdabuilders │ │ │ └── Main.java │ │ ├── with-deps │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── aws │ │ │ │ └── lambdabuilders │ │ │ │ └── Main.java │ │ │ └── resources │ │ │ └── some_data.txt │ │ └── with-layer-deps │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ └── java │ │ └── aws │ │ └── lambdabuilders │ │ └── Main.java │ ├── nodejs_npm │ ├── test_nodejs_npm.py │ └── testdata │ │ ├── broken-deps │ │ ├── excluded.js │ │ ├── included.js │ │ └── package.json │ │ ├── empty-test-script │ │ └── package.json │ │ ├── excluded-files │ │ ├── .aws-sam │ │ │ └── .keep │ │ ├── included.js │ │ └── package.json │ │ ├── manifest-outside-root-with-local-dependency │ │ ├── manifest │ │ │ └── package.json │ │ └── src │ │ │ ├── excluded.js │ │ │ └── included.js │ │ ├── manifest-outside-root │ │ ├── manifest │ │ │ └── package.json │ │ └── src │ │ │ ├── excluded.js │ │ │ └── included.js │ │ ├── no-deps │ │ ├── excluded.js │ │ ├── included.js │ │ └── package.json │ │ ├── no-manifest │ │ └── app.js │ │ ├── npm-deps │ │ ├── excluded.js │ │ ├── included.js │ │ └── package.json │ │ ├── npmrc │ │ ├── .npmrc │ │ ├── excluded.js │ │ ├── included.js │ │ └── package.json │ │ ├── package-lock-and-shrinkwrap │ │ ├── excluded.js │ │ ├── included.js │ │ ├── npm-shrinkwrap.json │ │ ├── package-lock.json │ │ └── package.json │ │ ├── package-lock.json │ │ ├── package-lock │ │ ├── excluded.js │ │ ├── included.js │ │ ├── package-lock.json │ │ └── package.json │ │ ├── shrinkwrap │ │ ├── excluded.js │ │ ├── included.js │ │ ├── npm-shrinkwrap.json │ │ └── package.json │ │ ├── test-script-to-create-file │ │ └── package.json │ │ └── with-local-dependency │ │ ├── excluded.js │ │ ├── included.js │ │ └── package.json │ ├── nodejs_npm_esbuild │ ├── __init__.py │ ├── test_nodejs_npm_with_esbuild.py │ └── testdata │ │ ├── esbuild-binary │ │ ├── package-lock.json │ │ └── package.json │ │ ├── esbuild-manifest-outside-root-with-local-depends │ │ ├── manifest │ │ │ └── package.json │ │ └── src │ │ │ └── included.ts │ │ ├── esbuild-manifest-outside-root │ │ ├── manifest │ │ │ └── package.json │ │ └── src │ │ │ └── included.ts │ │ ├── implicit-file-types │ │ ├── implicit.js │ │ ├── included.ts │ │ ├── package-lock.json │ │ └── package.json │ │ ├── no-deps-esbuild-loader │ │ ├── .gitignore │ │ ├── excluded.js │ │ ├── included.js │ │ ├── package.json │ │ └── reference.reference │ │ ├── no-deps-esbuild │ │ ├── .gitignore │ │ ├── excluded.js │ │ ├── included.js │ │ └── package.json │ │ ├── no-package-esbuild │ │ └── included.js │ │ ├── with-deps-esbuild-externals │ │ ├── excluded.js │ │ ├── included.js │ │ ├── package-lock.json │ │ └── package.json │ │ ├── with-deps-esbuild-multiple-entrypoints │ │ ├── .gitignore │ │ ├── excluded.js │ │ ├── included.js │ │ ├── included2.js │ │ └── package.json │ │ ├── with-deps-esbuild-typescript │ │ ├── included.ts │ │ ├── package-lock.json │ │ └── package.json │ │ ├── with-deps-esbuild │ │ ├── excluded.js │ │ ├── included.js │ │ ├── package-lock.json │ │ └── package.json │ │ ├── with-deps-no-node_modules │ │ ├── excluded.js │ │ ├── included.js │ │ └── package.json │ │ └── with-local-dependency │ │ ├── excluded.js │ │ ├── included.js │ │ └── package.json │ ├── python_pip │ ├── __init__.py │ ├── test_python_pip.py │ └── testdata │ │ ├── .nox │ │ ├── .tox │ │ ├── __init__.py │ │ ├── htmlcov │ │ ├── local-dependencies │ │ ├── setup.cfg │ │ ├── setup.py │ │ └── src │ │ │ └── local_package │ │ │ ├── __init__.py │ │ │ └── entrypoint.py │ │ ├── main.py │ │ ├── requirements-inflate.txt │ │ ├── requirements-invalid.txt │ │ ├── requirements-numpy.txt │ │ └── requirements-wrapt.txt │ ├── ruby_bundler │ ├── test_ruby.py │ └── testdata │ │ ├── broken-deps │ │ ├── Gemfile │ │ └── handler.rb │ │ ├── excluded-files │ │ ├── .aws-sam │ │ │ └── .keep │ │ ├── Gemfile │ │ └── handler.rb │ │ ├── excludes-gemfile │ │ └── handler.rb │ │ ├── no-deps │ │ ├── Gemfile │ │ └── handler.rb │ │ └── with-deps │ │ ├── Gemfile │ │ └── handler.rb │ └── rust_cargo │ ├── test_rust_cargo.py │ └── testdata │ ├── fail │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ └── src │ │ └── main.rs │ ├── hello │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ └── src │ │ └── main.rs │ ├── multi-binary │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ └── src │ │ ├── function_a.rs │ │ └── function_b.rs │ └── workspaces │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ ├── bar │ ├── Cargo.toml │ └── src │ │ └── main.rs │ └── foo │ ├── Cargo.toml │ └── src │ └── main.rs ├── testing_utils.py └── unit ├── .gitkeep ├── __init__.py ├── test_actions.py ├── test_builder.py ├── test_path_resolver.py ├── test_registry.py ├── test_utils.py ├── test_validator.py ├── test_workflow.py └── workflows ├── __init__.py ├── custom_make ├── test_actions.py ├── test_make.py └── test_workflow.py ├── dotnet_clipackage ├── __init__.py ├── test_actions.py ├── test_dotnetcli.py ├── test_dotnetcli_resolver.py ├── test_utils.py └── test_workflow.py ├── go_modules ├── __init__.py ├── test_actions.py ├── test_builder.py ├── test_validator.py └── test_workflow.py ├── java ├── __init__.py ├── test_actions.py └── test_utils.py ├── java_gradle ├── __init__.py ├── test_actions.py ├── test_gradle.py ├── test_gradle_validator.py ├── test_gradlew_resolver.py └── test_workflow.py ├── java_maven ├── __init__.py ├── test_actions.py ├── test_maven.py ├── test_maven_resolver.py ├── test_maven_validator.py └── test_workflow.py ├── nodejs_npm ├── __init__.py ├── test_actions.py ├── test_npm.py └── test_workflow.py ├── nodejs_npm_esbuild ├── __init__.py ├── test_actions.py ├── test_esbuild.py └── test_workflow.py ├── python_pip ├── __init__.py ├── test_actions.py ├── test_packager.py ├── test_validator.py └── test_workflow.py ├── ruby_bundler ├── __init__.py ├── test_actions.py ├── test_bundler.py └── test_workflow.py └── rust_cargo ├── __init__.py ├── test_actions.py ├── test_cargo_lambda.py ├── test_utils.py └── test_workflow.py /.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | branch = True 3 | omit = 4 | aws_lambda_builders/workflows/python_pip/compat.py 5 | [report] 6 | exclude_lines = 7 | pragma: no cover 8 | raise NotImplementedError.* 9 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | ignore = E126 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create an issue to report a bug for AWS Lambda Builders 4 | title: "Bug: TITLE" 5 | labels: ['stage/needs-triage'] 6 | assignees: '' 7 | 8 | --- 9 | 10 | 12 | 13 | ### Description: 14 | 15 | 16 | 17 | 18 | ### Steps to reproduce: 19 | 20 | 21 | 22 | 23 | ### Observed result: 24 | 25 | 26 | 27 | 28 | ### Expected result: 29 | 30 | 31 | 32 | 33 | ### Additional environment details (Ex: Windows, Mac, Amazon Linux etc) 34 | 35 | 1. OS: 36 | 2. If using SAM CLI, `sam --version`: 37 | 3. AWS region: 38 | 39 | `Add --debug flag to any SAM CLI commands you are running` 40 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea/feature/enhancement for AWS Lambda Builders 4 | title: "Feature request: TITLE" 5 | labels: ['type/feature', 'stage/needs-triage'] 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | 12 | ### Describe your idea/feature/enhancement 13 | 14 | Provide a clear description. 15 | 16 | Ex: I wish the AWS Lambda Builders would [...] 17 | 18 | ### Proposal 19 | 20 | Add details on how to add this to the product. 21 | 22 | ### Additional Details 23 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/other.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Other 3 | about: Choose if your issue doesn't apply to the other templates 4 | title: '' 5 | labels: ['stage/needs-triage'] 6 | assignees: '' 7 | 8 | --- -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | *Issue #, if available:* 2 | 3 | *Description of changes:* 4 | 5 | 6 | By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. 7 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "weekly" 8 | commit-message: 9 | prefix: chore 10 | include: scope 11 | reviewers: 12 | - aws/serverless-application-experience-sbt 13 | - aws/aws-lambda-tooling 14 | 15 | - package-ecosystem: "pip" 16 | directory: "/requirements" 17 | schedule: 18 | interval: "weekly" 19 | target-branch: "develop" 20 | commit-message: 21 | prefix: chore 22 | include: scope 23 | reviewers: 24 | - aws/serverless-application-experience-sbt 25 | - aws/aws-lambda-tooling 26 | ignore: 27 | # The dependencies are intentionally pinned to certain 28 | # version ranges for specific Python versions 29 | - dependency-name: "flake8" 30 | - dependency-name: "isort" 31 | -------------------------------------------------------------------------------- /.github/labeler.yml: -------------------------------------------------------------------------------- 1 | area/workflow/dotnet_clipackage: 2 | - changed-files: 3 | - any-glob-to-any-file: 4 | - aws_lambda_builders/workflows/dotnet_clipackage/* 5 | - aws_lambda_builders/workflows/dotnet_clipackage/**/* 6 | 7 | area/workflow/go_modules: 8 | - changed-files: 9 | - any-glob-to-any-file: 10 | - aws_lambda_builders/workflows/go_modules/* 11 | - aws_lambda_builders/workflows/go_modules/**/* 12 | 13 | area/workflow/java_gradle: 14 | - changed-files: 15 | - any-glob-to-any-file: 16 | - aws_lambda_builders/workflows/java_gradle/* 17 | - aws_lambda_builders/workflows/java_gradle/**/* 18 | 19 | area/workflow/java_maven: 20 | - changed-files: 21 | - any-glob-to-any-file: 22 | - aws_lambda_builders/workflows/java_maven/* 23 | - aws_lambda_builders/workflows/java_maven/**/* 24 | 25 | area/workflow/node_npm: 26 | - changed-files: 27 | - any-glob-to-any-file: 28 | - aws_lambda_builders/workflows/nodejs_npm/* 29 | - aws_lambda_builders/workflows/nodejs_npm/**/* 30 | 31 | area/workflow/python_pip: 32 | - changed-files: 33 | - any-glob-to-any-file: 34 | - aws_lambda_builders/workflows/python_pip/* 35 | - aws_lambda_builders/workflows/python_pip/**/* 36 | 37 | area/workflow/ruby_bundler: 38 | - changed-files: 39 | - any-glob-to-any-file: 40 | - aws_lambda_builders/workflows/ruby_bundler/* 41 | - aws_lambda_builders/workflows/ruby_bundler/**/* 42 | -------------------------------------------------------------------------------- /.github/workflows/README.md: -------------------------------------------------------------------------------- 1 | This folder has Github Actions for this repo. 2 | 3 | ** pr-labler ** 4 | 5 | This is responsible for tagging our prs automattically. The primary thing it does is tags internal vs external (to the team) PRs. It will 6 | also tag PRs with `area/*` tags based upon the files being changes in the PR. This is run on `pull_request_target` which only runs what is 7 | in the repo not what is in the Pull Request. This is done to help guard against a PR running and changing. For this, the Action should NEVER 8 | download or checkout the PR. It is purely for tagging/labeling not CI. 9 | -------------------------------------------------------------------------------- /.github/workflows/close-issue-on-release.yml: -------------------------------------------------------------------------------- 1 | name: Close issues on release cut 2 | 3 | on: 4 | release: 5 | types: [released] 6 | 7 | jobs: 8 | run-workflow: 9 | permissions: 10 | issues: write 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Close issues marked 14 | env: 15 | REPO : ${{ github.repository }} 16 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 17 | run: | 18 | release_url=$(gh release view ${{ github.ref_name }} --repo $REPO --json url --jq ".url") 19 | for issue_number in $(gh issue list -l "stage/waiting-for-release" --repo $REPO --json number --jq ".[].number"); do 20 | gh issue close $issue_number -c "Patch is released in [${{ github.ref_name }}]($release_url). If you are AWS SAM CLI user, please wait for next AWS SAM CLI release. Closing" -r completed --repo $REPO 21 | done -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | # black is in dev.txt, so local repo is used here. 2 | repos: 3 | - repo: local 4 | hooks: 5 | - id: black 6 | name: black 7 | entry: black 8 | language: system 9 | types: [python] 10 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | # https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners 2 | 3 | * @aws/aws-lambda-tooling 4 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include LICENSE 2 | include requirements/* 3 | recursive-include aws_lambda_builders/workflows * 4 | prune tests 5 | 6 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | init: 2 | LAMBDA_BUILDERS_DEV=1 pip install -e '.[dev]' 3 | 4 | test: 5 | # Run unit and functional tests 6 | # Fail if coverage falls below 94% 7 | LAMBDA_BUILDERS_DEV=1 pytest -vv --cov aws_lambda_builders --cov-report term-missing --cov-fail-under 94 tests/unit tests/functional 8 | 9 | unit-test: 10 | LAMBDA_BUILDERS_DEV=1 pytest tests/unit 11 | 12 | func-test: 13 | LAMBDA_BUILDERS_DEV=1 pytest tests/functional 14 | 15 | integ-test: 16 | # Integration tests don't need code coverage 17 | LAMBDA_BUILDERS_DEV=1 pytest tests/integration 18 | 19 | lint: 20 | # Linter performs static analysis to catch latent bugs 21 | ruff check aws_lambda_builders 22 | 23 | lint-fix: 24 | ruff aws_lambda_builders --fix 25 | 26 | # Command to run everytime you make changes to verify everything works 27 | dev: lint test 28 | 29 | black: 30 | black setup.py aws_lambda_builders/* tests/* 31 | 32 | black-check: 33 | black --check setup.py aws_lambda_builders/* tests/* 34 | 35 | # Verifications to run before sending a pull request 36 | pr: init dev black-check 37 | 38 | format: lint-fix black 39 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | AWS Lambda Builders 2 | Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | 4 | The function "which" at aws_lambda_builders/utils.py was copied from https://github.com/python/cpython/blob/3.7/Lib/shutil.py 5 | SPDX-License-Identifier: Python-2.0 6 | Copyright 2019 by the Python Software Foundation -------------------------------------------------------------------------------- /aws_lambda_builders/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | AWS Lambda Builder Library 3 | """ 4 | 5 | # Changing version will trigger a new release! 6 | # Please make the version change as the last step of your development. 7 | 8 | __version__ = "1.54.0" 9 | RPC_PROTOCOL_VERSION = "0.3" 10 | -------------------------------------------------------------------------------- /aws_lambda_builders/architecture.py: -------------------------------------------------------------------------------- 1 | """ 2 | Enum for determining type of architectures for Lambda Function. 3 | """ 4 | 5 | X86_64 = "x86_64" 6 | ARM64 = "arm64" 7 | -------------------------------------------------------------------------------- /aws_lambda_builders/binary_path.py: -------------------------------------------------------------------------------- 1 | """ 2 | Class containing resolved path of binary given a validator and a resolver and the name of the binary. 3 | """ 4 | 5 | 6 | class BinaryPath(object): 7 | def __init__(self, resolver, validator, binary, binary_path=None): 8 | self.resolver = resolver 9 | self.validator = validator 10 | self.binary = binary 11 | self._binary_path = binary_path 12 | self.path_provided = True if self._binary_path else False 13 | 14 | @property 15 | def binary_path(self): 16 | return self._binary_path 17 | 18 | @binary_path.setter 19 | def binary_path(self, binary_path): 20 | self._binary_path = binary_path 21 | -------------------------------------------------------------------------------- /aws_lambda_builders/path_resolver.py: -------------------------------------------------------------------------------- 1 | """ 2 | Basic Path Resolver that looks for the executable by runtime first, before proceeding to 'language' in PATH. 3 | """ 4 | 5 | from aws_lambda_builders.utils import which 6 | 7 | 8 | class PathResolver(object): 9 | def __init__(self, binary, runtime, additional_binaries=None, executable_search_paths=None): 10 | self.binary = binary 11 | self.runtime = runtime 12 | self.executables = [self.runtime, self.binary] 13 | self.additional_binaries = additional_binaries 14 | if isinstance(additional_binaries, list): 15 | self.executables = self.executables + self.additional_binaries 16 | 17 | self.executable_search_paths = executable_search_paths 18 | 19 | def _which(self): 20 | exec_paths = [] 21 | for executable in [executable for executable in self.executables if executable is not None]: 22 | paths = which(executable, executable_search_paths=self.executable_search_paths) 23 | exec_paths.extend(paths) 24 | 25 | if not exec_paths: 26 | raise ValueError( 27 | "Path resolution for runtime: {} of binary: " "{} was not successful".format(self.runtime, self.binary) 28 | ) 29 | return exec_paths 30 | 31 | @property 32 | def exec_paths(self): 33 | return self._which() 34 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Officially supported builder workflows 3 | """ 4 | 5 | import aws_lambda_builders.workflows.custom_make 6 | import aws_lambda_builders.workflows.dotnet_clipackage 7 | import aws_lambda_builders.workflows.go_modules 8 | import aws_lambda_builders.workflows.java_gradle 9 | import aws_lambda_builders.workflows.java_maven 10 | import aws_lambda_builders.workflows.nodejs_npm 11 | import aws_lambda_builders.workflows.nodejs_npm_esbuild 12 | import aws_lambda_builders.workflows.python_pip 13 | import aws_lambda_builders.workflows.ruby_bundler 14 | import aws_lambda_builders.workflows.rust_cargo 15 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/custom_make/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds provided runtime lambda functions using a Makefile based builder. 3 | """ 4 | 5 | from .workflow import CustomMakeWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/custom_make/exceptions.py: -------------------------------------------------------------------------------- 1 | """ 2 | Series of Exceptions raised by Custom Makefile builder. 3 | """ 4 | 5 | 6 | class MakeFileNotFoundError(Exception): 7 | pass 8 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/custom_make/utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | Commonly used utilities 3 | """ 4 | 5 | import os 6 | import platform 7 | import subprocess 8 | 9 | from aws_lambda_builders.utils import which 10 | 11 | 12 | class OSUtils(object): 13 | """ 14 | Wrapper around file system functions, to make it easy to 15 | unit test actions in memory 16 | """ 17 | 18 | def exists(self, p): 19 | return os.path.exists(p) 20 | 21 | def makedirs(self, path): 22 | return os.makedirs(path) 23 | 24 | def popen(self, command, stdout=None, stderr=None, env=None, cwd=None): 25 | p = subprocess.Popen(command, stdout=stdout, stderr=stderr, env=env, cwd=cwd) 26 | return p 27 | 28 | def environ(self): 29 | return os.environ.copy() 30 | 31 | def normpath(self, path): 32 | return os.path.normpath(path) 33 | 34 | def abspath(self, path): 35 | return os.path.abspath(path) 36 | 37 | @property 38 | def pipe(self): 39 | return subprocess.PIPE 40 | 41 | def is_windows(self): 42 | return platform.system().lower() == "windows" 43 | 44 | def which(self, executable, executable_search_paths=None): 45 | return which(executable, executable_search_paths=executable_search_paths) 46 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/custom_make/validator.py: -------------------------------------------------------------------------------- 1 | """ 2 | Custom Make Runtime Validation 3 | """ 4 | 5 | from aws_lambda_builders.validator import RuntimeValidator 6 | 7 | 8 | class CustomMakeRuntimeValidator(RuntimeValidator): 9 | """ 10 | Default runtime validator for CustomMake workflow 11 | """ 12 | 13 | def __init__(self, runtime, architecture): 14 | super(CustomMakeRuntimeValidator, self).__init__(runtime, architecture) 15 | self._valid_runtime_path = None 16 | 17 | def validate(self, runtime_path): 18 | self._runtime_path = runtime_path 19 | return runtime_path 20 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/dotnet_clipackage/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds .NET Core Lambda functions using Amazon.Lambda.Tools Global Tool https://github.com/aws/aws-extensions-for-dotnet-cli#aws-lambda-amazonlambdatools 3 | """ 4 | 5 | from .workflow import DotnetCliPackageWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli_resolver.py: -------------------------------------------------------------------------------- 1 | """ 2 | Dotnet executable resolution 3 | """ 4 | 5 | from .utils import OSUtils 6 | 7 | 8 | class DotnetCliResolver(object): 9 | def __init__(self, executable_search_paths=None, os_utils=None): 10 | self.binary = "dotnet" 11 | self.executable_search_paths = executable_search_paths 12 | self.os_utils = os_utils if os_utils else OSUtils() 13 | 14 | @property 15 | def exec_paths(self): 16 | # look for the windows executable 17 | paths = self.os_utils.which("dotnet.exe", executable_search_paths=self.executable_search_paths) 18 | if not paths: 19 | # fallback to the non windows name without the .exe suffix 20 | paths = self.os_utils.which("dotnet", executable_search_paths=self.executable_search_paths) 21 | 22 | if not paths: 23 | raise ValueError("No dotnet cli executable found!") 24 | 25 | return paths 26 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/go_modules/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds Go Lambda functions using standard Go tooling 3 | """ 4 | 5 | from .workflow import GoModulesWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/go_modules/actions.py: -------------------------------------------------------------------------------- 1 | """ 2 | Action to build a Go project using standard Go tooling 3 | """ 4 | 5 | from aws_lambda_builders.actions import ActionFailedError, BaseAction, Purpose 6 | 7 | from .builder import BuilderError 8 | 9 | 10 | class GoModulesBuildAction(BaseAction): 11 | NAME = "Build" 12 | DESCRIPTION = "Building Go package with Go Modules" 13 | PURPOSE = Purpose.COMPILE_SOURCE 14 | 15 | def __init__(self, source_dir, output_path, builder): 16 | self.source_dir = source_dir 17 | self.output_path = output_path 18 | self.builder = builder 19 | 20 | def execute(self): 21 | try: 22 | self.builder.build(self.source_dir, self.output_path) 23 | except BuilderError as ex: 24 | raise ActionFailedError(str(ex)) 25 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/go_modules/utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | Commonly used utilities 3 | """ 4 | 5 | import os 6 | import subprocess 7 | 8 | 9 | class OSUtils(object): 10 | """ 11 | Wrapper around file system functions, to make it easy to 12 | unit test actions in memory 13 | """ 14 | 15 | @property 16 | def environ(self): 17 | return os.environ.copy() 18 | 19 | def joinpath(self, *args): 20 | return os.path.join(*args) 21 | 22 | def popen(self, command, stdout=None, stderr=None, env=None, cwd=None): 23 | p = subprocess.Popen(command, stdout=stdout, stderr=stderr, env=env, cwd=cwd) 24 | return p 25 | 26 | @property 27 | def pipe(self): 28 | return subprocess.PIPE 29 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/java/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/aws_lambda_builders/workflows/java/__init__.py -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/java_gradle/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds Java Lambda functions using the Gradle build tool 3 | """ 4 | 5 | from .workflow import JavaGradleWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/java_gradle/gradle_resolver.py: -------------------------------------------------------------------------------- 1 | """ 2 | Gradle executable resolution 3 | """ 4 | 5 | from aws_lambda_builders.workflows.java.utils import OSUtils 6 | 7 | 8 | class GradleResolver(object): 9 | def __init__(self, executable_search_paths=None, os_utils=None): 10 | self.binary = "gradle" 11 | self.executables = [self.binary] 12 | self.executable_search_paths = executable_search_paths 13 | self.os_utils = os_utils if os_utils else OSUtils() 14 | 15 | @property 16 | def exec_paths(self): 17 | # Prefer gradlew/gradlew.bat 18 | paths = self.os_utils.which(self.wrapper_name, executable_search_paths=self.executable_search_paths) 19 | if not paths: 20 | # fallback to the gradle binary 21 | paths = self.os_utils.which("gradle", executable_search_paths=self.executable_search_paths) 22 | 23 | if not paths: 24 | raise ValueError("No Gradle executable found!") 25 | 26 | return paths 27 | 28 | @property 29 | def wrapper_name(self): 30 | return "gradlew.bat" if self.os_utils.is_windows() else "gradlew" 31 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/java_maven/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds Java Lambda functions using the Maven build tool 3 | """ 4 | 5 | from .workflow import JavaMavenWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/java_maven/maven_resolver.py: -------------------------------------------------------------------------------- 1 | """ 2 | Maven executable resolution 3 | """ 4 | 5 | from aws_lambda_builders.workflows.java.utils import OSUtils 6 | 7 | 8 | class MavenResolver(object): 9 | def __init__(self, executable_search_paths=None, os_utils=None): 10 | self.binary = "mvn" 11 | self.executables = [self.binary] 12 | self.executable_search_paths = executable_search_paths 13 | self.os_utils = os_utils if os_utils else OSUtils() 14 | 15 | @property 16 | def exec_paths(self): 17 | paths = self.os_utils.which("mvn", executable_search_paths=self.executable_search_paths) 18 | 19 | if not paths: 20 | raise ValueError("No Maven executable found!") 21 | 22 | return paths 23 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/nodejs_npm/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds NodeJS Lambda functions using NPM dependency manager 3 | """ 4 | 5 | from .workflow import NodejsNpmWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/nodejs_npm/exceptions.py: -------------------------------------------------------------------------------- 1 | """ 2 | Exceptions for the Node.js workflow 3 | """ 4 | 5 | from aws_lambda_builders.exceptions import LambdaBuilderError 6 | 7 | 8 | class NpmExecutionError(LambdaBuilderError): 9 | """ 10 | Exception raised in case NPM execution fails. 11 | It will pass on the standard error output from the NPM console. 12 | """ 13 | 14 | MESSAGE = "NPM Failed: {message}" 15 | 16 | def __init__(self, **kwargs): 17 | Exception.__init__(self, self.MESSAGE.format(**kwargs)) 18 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/nodejs_npm_esbuild/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds NodeJS Lambda functions using NPM dependency manager with esbuild bundler 3 | """ 4 | 5 | from .workflow import NodejsNpmEsbuildWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/nodejs_npm_esbuild/exceptions.py: -------------------------------------------------------------------------------- 1 | """ 2 | Esbuild specific exceptions 3 | """ 4 | 5 | from aws_lambda_builders.actions import ActionFailedError 6 | from aws_lambda_builders.exceptions import LambdaBuilderError 7 | 8 | 9 | class EsbuildExecutionError(LambdaBuilderError): 10 | """ 11 | Exception raised in case esbuild execution fails. 12 | It will pass on the standard error output from the esbuild console. 13 | """ 14 | 15 | MESSAGE = "Esbuild Failed: {message}" 16 | 17 | 18 | class EsbuildCommandError(ActionFailedError): 19 | """ 20 | Exception raised in case esbuild can't build a valid esbuild command from the given config. 21 | It will pass on the standard error output from the esbuild console. 22 | """ 23 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/python_pip/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds Python Lambda functions using PIP dependency manager 3 | """ 4 | 5 | from .workflow import PythonPipWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/python_pip/exceptions.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python pip specific workflow exceptions. 3 | """ 4 | 5 | from aws_lambda_builders.exceptions import LambdaBuilderError 6 | 7 | 8 | class MissingPipError(LambdaBuilderError): 9 | MESSAGE = "pip executable not found in your python environment at {python_path}" 10 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/ruby_bundler/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds Ruby Lambda functions using Bundler 3 | """ 4 | 5 | from .workflow import RubyBundlerWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/ruby_bundler/utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | Commonly used utilities 3 | """ 4 | 5 | import os 6 | import platform 7 | import shutil 8 | import subprocess 9 | 10 | 11 | class OSUtils(object): 12 | """ 13 | Wrapper around file system functions, to make it easy to 14 | unit test actions in memory 15 | """ 16 | 17 | def popen(self, command, stdout=None, stderr=None, env=None, cwd=None): 18 | p = subprocess.Popen(command, stdout=stdout, stderr=stderr, env=env, cwd=cwd) 19 | return p 20 | 21 | def joinpath(self, *args): 22 | return os.path.join(*args) 23 | 24 | @property 25 | def pipe(self): 26 | return subprocess.PIPE 27 | 28 | def dirname(self, path): 29 | return os.path.dirname(path) 30 | 31 | def abspath(self, path): 32 | return os.path.abspath(path) 33 | 34 | def is_windows(self): 35 | return platform.system().lower() == "windows" 36 | 37 | def directory_exists(self, dirpath): 38 | return os.path.exists(dirpath) and os.path.isdir(dirpath) 39 | 40 | def remove_directory(self, dirpath): 41 | shutil.rmtree(dirpath) 42 | 43 | def get_bundle_dir(self, cwd): 44 | return os.path.join(cwd, ".bundle") 45 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/rust_cargo/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Builds Rust Lambda functions using Cargo Lambda 3 | """ 4 | 5 | from .workflow import RustCargoLambdaWorkflow 6 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/rust_cargo/exceptions.py: -------------------------------------------------------------------------------- 1 | """ 2 | Cargo Lambda specific exceptions 3 | """ 4 | 5 | from aws_lambda_builders.exceptions import LambdaBuilderError 6 | 7 | 8 | class CargoLambdaExecutionException(LambdaBuilderError): 9 | """ 10 | Exception raised in case Cargo Lambda execution fails. 11 | It will pass on the standard error output from the Cargo Lambda console. 12 | """ 13 | 14 | MESSAGE = "Cargo Lambda failed: {message}" 15 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/rust_cargo/feature_flag.py: -------------------------------------------------------------------------------- 1 | """ 2 | Cargo Lambda specific feature flag utilities 3 | """ 4 | 5 | EXPERIMENTAL_FLAG_CARGO_LAMBDA = "experimentalCargoLambda" 6 | 7 | 8 | def is_experimental_cargo_lambda_scope(experimental_flags): 9 | """ 10 | A function which will determine if experimental Cargo Lambda scope is active 11 | """ 12 | return bool(experimental_flags) and EXPERIMENTAL_FLAG_CARGO_LAMBDA in experimental_flags 13 | -------------------------------------------------------------------------------- /aws_lambda_builders/workflows/rust_cargo/utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import shutil 3 | import subprocess 4 | 5 | 6 | class OSUtils(object): 7 | """ 8 | Wrapper around file system functions, to make it easy to 9 | unit test actions in memory 10 | """ 11 | 12 | def popen(self, command, stdout=None, stderr=None, env=None, cwd=None): 13 | return subprocess.Popen(command, stdout=stdout, stderr=stderr, env=env, cwd=cwd) 14 | 15 | def copyfile(self, source, destination): 16 | shutil.copy2(source, destination) 17 | 18 | def makedirs(self, path): 19 | if not os.path.exists(path): 20 | os.makedirs(path) 21 | -------------------------------------------------------------------------------- /conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/conftest.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.ruff] 2 | line-length = 120 3 | 4 | [tool.ruff.lint] 5 | 6 | select = [ 7 | "E", # Pycodestyle 8 | "F", # Pyflakes 9 | "PL", # pylint 10 | "I", # isort 11 | ] 12 | ignore = ["PLR0913"] 13 | 14 | [tool.ruff.lint.pylint] 15 | max-branches = 13 16 | 17 | [tool.ruff.lint.per-file-ignores] 18 | "__init__.py" = ["F401", "E501"] 19 | "aws_lambda_builders/workflow.py" = ["E501"] 20 | 21 | [tool.black] 22 | line-length = 120 23 | target_version = ['py37', 'py38', 'py39'] 24 | exclude = ''' 25 | 26 | ( 27 | /( 28 | \.eggs # exclude a few common directories in the 29 | | \.git # root of the project 30 | | \.tox 31 | | \.venv 32 | | build 33 | | dist 34 | | pip-wheel-metadata 35 | )/ 36 | ) 37 | ''' 38 | -------------------------------------------------------------------------------- /requirements/base.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /requirements/dev.txt: -------------------------------------------------------------------------------- 1 | coverage==7.8.2; python_version>="3.9" 2 | coverage==7.6.1; python_version<"3.9" 3 | flake8==3.8.4 4 | pytest-cov==6.1.1; python_version>="3.9" 5 | pytest-cov==5.0.0; python_version<"3.9" 6 | 7 | # Test requirements 8 | pytest>=6.1.1 9 | parameterized==0.9.0 10 | pyelftools~=0.32 # Used to verify the generated Go binary architecture in integration tests (utils.py) 11 | 12 | # formatter 13 | black==25.1.0; python_version>="3.9" 14 | black==24.8.0; python_version<"3.9" 15 | ruff==0.11.12 16 | -------------------------------------------------------------------------------- /requirements/python_pip.txt: -------------------------------------------------------------------------------- 1 | 2 | # Following packages are required by `python_pip` workflow to run. 3 | # TODO: Consider moving this dependency directly into the `python_pip` workflow module 4 | setuptools 5 | wheel -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | description-file = README.md 3 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/__init__.py -------------------------------------------------------------------------------- /tests/functional/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/.gitkeep -------------------------------------------------------------------------------- /tests/functional/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/__init__.py -------------------------------------------------------------------------------- /tests/functional/testdata/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/__init__.py -------------------------------------------------------------------------------- /tests/functional/testdata/cwd.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | print(os.getcwd()) 4 | -------------------------------------------------------------------------------- /tests/functional/testdata/empty_subfolders/sub_folder/sub_folder/test_file.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/empty_subfolders/sub_folder/sub_folder/test_file.txt -------------------------------------------------------------------------------- /tests/functional/testdata/multiple_files/sub_folder/test_file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/multiple_files/sub_folder/test_file3.txt -------------------------------------------------------------------------------- /tests/functional/testdata/multiple_files/test_file.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/multiple_files/test_file.txt -------------------------------------------------------------------------------- /tests/functional/testdata/multiple_files/test_file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/multiple_files/test_file2.txt -------------------------------------------------------------------------------- /tests/functional/testdata/path_reversal_uxix.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/path_reversal_uxix.tgz -------------------------------------------------------------------------------- /tests/functional/testdata/path_reversal_win.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/path_reversal_win.tgz -------------------------------------------------------------------------------- /tests/functional/testdata/single_file/test_file.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/single_file/test_file.txt -------------------------------------------------------------------------------- /tests/functional/testdata/test.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/test.tgz -------------------------------------------------------------------------------- /tests/functional/testdata/workflows/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/workflows/__init__.py -------------------------------------------------------------------------------- /tests/functional/testdata/workflows/hello_workflow/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/testdata/workflows/hello_workflow/__init__.py -------------------------------------------------------------------------------- /tests/functional/workflows/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/workflows/__init__.py -------------------------------------------------------------------------------- /tests/functional/workflows/java/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/workflows/java/__init__.py -------------------------------------------------------------------------------- /tests/functional/workflows/nodejs_npm/test_data/test.json: -------------------------------------------------------------------------------- 1 | {"a":1,"b":{"c":2}} 2 | -------------------------------------------------------------------------------- /tests/functional/workflows/nodejs_npm/test_data/test.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/workflows/nodejs_npm/test_data/test.tgz -------------------------------------------------------------------------------- /tests/functional/workflows/provided_make/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/workflows/provided_make/__init__.py -------------------------------------------------------------------------------- /tests/functional/workflows/provided_make/test_utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | from unittest import TestCase 5 | 6 | from aws_lambda_builders.workflows.custom_make import utils 7 | 8 | 9 | class TestOSUtils(TestCase): 10 | def setUp(self): 11 | self.osutils = utils.OSUtils() 12 | 13 | def test_popen_runs_a_process_and_returns_outcome(self): 14 | cwd_py = os.path.join(os.path.dirname(__file__), "..", "..", "testdata", "cwd.py") 15 | 16 | p = self.osutils.popen([sys.executable, cwd_py], stdout=self.osutils.pipe, stderr=self.osutils.pipe) 17 | 18 | out, err = p.communicate() 19 | 20 | self.assertEqual(p.returncode, 0) 21 | 22 | self.assertEqual(out.decode("utf8").strip(), os.getcwd()) 23 | 24 | def test_popen_can_accept_cwd_and_env(self): 25 | testdata_dir = os.path.join(os.path.dirname(__file__), "..", "..", "testdata") 26 | env = os.environ.copy() 27 | env.update({"SOME_ENV": "SOME_VALUE"}) 28 | 29 | p = self.osutils.popen( 30 | [sys.executable, "cwd.py"], 31 | stdout=self.osutils.pipe, 32 | stderr=self.osutils.pipe, 33 | env=env, 34 | cwd=testdata_dir, 35 | ) 36 | 37 | out, err = p.communicate() 38 | 39 | self.assertEqual(p.returncode, 0) 40 | 41 | self.assertEqual(out.decode("utf8").strip(), os.path.abspath(testdata_dir)) 42 | -------------------------------------------------------------------------------- /tests/functional/workflows/python_pip/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/workflows/python_pip/__init__.py -------------------------------------------------------------------------------- /tests/functional/workflows/python_pip/test_utils.py: -------------------------------------------------------------------------------- 1 | import io 2 | 3 | import pytest 4 | 5 | from aws_lambda_builders.workflows.python_pip import utils 6 | 7 | 8 | @pytest.fixture 9 | def osutils(): 10 | return utils.OSUtils() 11 | 12 | 13 | class TestOSUtils(object): 14 | def test_can_read_unicode(self, tmpdir, osutils): 15 | filename = str(tmpdir.join("file.txt")) 16 | checkmark = "\2713" 17 | with io.open(filename, "w", encoding="utf-16") as f: 18 | f.write(checkmark) 19 | 20 | content = osutils.get_file_contents(filename, binary=False, encoding="utf-16") 21 | assert content == checkmark 22 | -------------------------------------------------------------------------------- /tests/functional/workflows/ruby_bundler/test_data/test.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/functional/workflows/ruby_bundler/test_data/test.tgz -------------------------------------------------------------------------------- /tests/integration/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/.gitkeep -------------------------------------------------------------------------------- /tests/integration/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/__init__.py -------------------------------------------------------------------------------- /tests/integration/workflows/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/__init__.py -------------------------------------------------------------------------------- /tests/integration/workflows/common_test_utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | from zipfile import ZipFile 3 | 4 | 5 | def folder_should_not_contain_files(folder, files): 6 | for f in files: 7 | if does_folder_contain_file(folder, f): 8 | return False 9 | return True 10 | 11 | 12 | def does_folder_contain_all_files(folder, files): 13 | for f in files: 14 | if not does_folder_contain_file(folder, f): 15 | return False 16 | return True 17 | 18 | 19 | def does_folder_contain_file(folder, file): 20 | return os.path.exists(os.path.join(folder, file)) 21 | 22 | 23 | def does_zip_contain_all_files(zip_path, files): 24 | with ZipFile(zip_path) as z: 25 | zip_names = set(z.namelist()) 26 | return set(files).issubset(zip_names) 27 | -------------------------------------------------------------------------------- /tests/integration/workflows/custom_make/testdata/makefile-in-different-working-directory/Makefile: -------------------------------------------------------------------------------- 1 | build-HelloWorldFunction: 2 | cp *.py $(ARTIFACTS_DIR) 3 | cp requirements-requests.txt $(ARTIFACTS_DIR) 4 | python -m pip install -r requirements-requests.txt -t $(ARTIFACTS_DIR) 5 | rm -rf $(ARTIFACTS_DIR)/bin 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/custom_make/testdata/makefile-in-different-working-directory/source_code/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/custom_make/testdata/makefile-in-different-working-directory/source_code/__init__.py -------------------------------------------------------------------------------- /tests/integration/workflows/custom_make/testdata/makefile-in-different-working-directory/source_code/main.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | 4 | def lambda_handler(event, context): 5 | # Just return the requests version. 6 | return "{}".format(requests.__version__) 7 | -------------------------------------------------------------------------------- /tests/integration/workflows/custom_make/testdata/makefile-in-different-working-directory/source_code/requirements-requests.txt: -------------------------------------------------------------------------------- 1 | requests==2.23.0 2 | 3 | # Pinning so the test can expect a given version 4 | certifi==2020.4.5.2 # dep of requests -------------------------------------------------------------------------------- /tests/integration/workflows/custom_make/testdata/makefile-root/Makefile: -------------------------------------------------------------------------------- 1 | build-HelloWorldFunction: 2 | cp *.py $(ARTIFACTS_DIR) 3 | cp requirements-requests.txt $(ARTIFACTS_DIR) 4 | python -m pip install -r requirements-requests.txt -t $(ARTIFACTS_DIR) 5 | rm -rf $(ARTIFACTS_DIR)/bin 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/custom_make/testdata/makefile-root/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/custom_make/testdata/makefile-root/__init__.py -------------------------------------------------------------------------------- /tests/integration/workflows/custom_make/testdata/makefile-root/main.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | 4 | def lambda_handler(event, context): 5 | # Just return the requests version. 6 | return "{}".format(requests.__version__) 7 | -------------------------------------------------------------------------------- /tests/integration/workflows/custom_make/testdata/makefile-root/requirements-requests.txt: -------------------------------------------------------------------------------- 1 | requests==2.23.0 2 | 3 | # Pinning so the test can expect a given version 4 | certifi==2020.4.5.2 # dep of requests -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/CustomRuntime6/CustomRuntime6.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Exe 4 | net6.0 5 | enable 6 | enable 7 | Lambda 8 | bootstrap 9 | true 10 | true 11 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/CustomRuntime6/Function.cs: -------------------------------------------------------------------------------- 1 | using Amazon.Lambda.Core; 2 | using Amazon.Lambda.RuntimeSupport; 3 | using Amazon.Lambda.Serialization.SystemTextJson; 4 | 5 | namespace CustomRuntime6; 6 | 7 | public class Function 8 | { 9 | private static async Task Main(string[] args) 10 | { 11 | Func handler = FunctionHandler; 12 | await LambdaBootstrapBuilder.Create(handler, new DefaultLambdaJsonSerializer()) 13 | .Build() 14 | .RunAsync(); 15 | } 16 | 17 | public static string FunctionHandler(string input, ILambdaContext context) 18 | { 19 | return input.ToUpper(); 20 | } 21 | } -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/CustomRuntime6/aws-lambda-tools-defaults.json: -------------------------------------------------------------------------------- 1 | { 2 | "Information": [ 3 | "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.", 4 | "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.", 5 | "dotnet lambda help", 6 | "All the command line options for the Lambda command can be specified in this file." 7 | ], 8 | "profile": "", 9 | "region": "", 10 | "configuration": "Release", 11 | "function-runtime": "provided.al2", 12 | "function-memory-size": 256, 13 | "function-timeout": 30, 14 | "function-handler": "bootstrap", 15 | "msbuild-parameters": "--self-contained true" 16 | } -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/CustomRuntime8/CustomRuntime8.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Exe 4 | net8.0 5 | enable 6 | enable 7 | Lambda 8 | bootstrap 9 | true 10 | true 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/CustomRuntime8/Function.cs: -------------------------------------------------------------------------------- 1 | using Amazon.Lambda.Core; 2 | using Amazon.Lambda.RuntimeSupport; 3 | using Amazon.Lambda.Serialization.SystemTextJson; 4 | 5 | namespace CustomRuntime6; 6 | 7 | public class Function 8 | { 9 | private static async Task Main(string[] args) 10 | { 11 | Func handler = FunctionHandler; 12 | await LambdaBootstrapBuilder.Create(handler, new DefaultLambdaJsonSerializer()) 13 | .Build() 14 | .RunAsync(); 15 | } 16 | 17 | public static string FunctionHandler(string input, ILambdaContext context) 18 | { 19 | return input.ToUpper(); 20 | } 21 | } -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/CustomRuntime8/aws-lambda-tools-defaults.json: -------------------------------------------------------------------------------- 1 | { 2 | "Information": [ 3 | "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.", 4 | "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.", 5 | "dotnet lambda help", 6 | "All the command line options for the Lambda command can be specified in this file." 7 | ], 8 | "profile": "", 9 | "region": "", 10 | "configuration": "Release", 11 | "function-runtime": "provided.al2", 12 | "function-memory-size": 256, 13 | "function-timeout": 30, 14 | "function-handler": "bootstrap", 15 | "msbuild-parameters": "--self-contained true" 16 | } -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/WithDefaultsFile6/Function.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | using Amazon.Lambda.Core; 7 | 8 | // Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class. 9 | [assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] 10 | 11 | namespace WithDefaultsFile 12 | { 13 | public class Function 14 | { 15 | 16 | /// 17 | /// A simple function that takes a string and does a ToUpper 18 | /// 19 | /// 20 | /// 21 | /// 22 | public string FunctionHandler(string input, ILambdaContext context) 23 | { 24 | return input?.ToUpper(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/WithDefaultsFile6/WithDefaultsFile.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net6.0 4 | true 5 | Lambda 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/WithDefaultsFile6/aws-lambda-tools-defaults.json: -------------------------------------------------------------------------------- 1 | { 2 | "Information": [ 3 | "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.", 4 | "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.", 5 | "dotnet lambda help", 6 | "All the command line options for the Lambda command can be specified in this file." 7 | ], 8 | "profile": "", 9 | "region": "", 10 | "configuration": "Release", 11 | "framework": "net6.0", 12 | "function-runtime": "dotnet6", 13 | "function-memory-size": 256, 14 | "function-timeout": 30, 15 | "function-handler": "WithDefaultsFile::WithDefaultsFile.Function::FunctionHandler" 16 | } -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/WithDefaultsFile8/Function.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | using Amazon.Lambda.Core; 7 | 8 | // Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class. 9 | [assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] 10 | 11 | namespace WithDefaultsFile 12 | { 13 | public class Function 14 | { 15 | 16 | /// 17 | /// A simple function that takes a string and does a ToUpper 18 | /// 19 | /// 20 | /// 21 | /// 22 | public string FunctionHandler(string input, ILambdaContext context) 23 | { 24 | return input?.ToUpper(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/WithDefaultsFile8/WithDefaultsFile.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net8.0 4 | true 5 | Lambda 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/dotnet_clipackage/testdata/WithDefaultsFile8/aws-lambda-tools-defaults.json: -------------------------------------------------------------------------------- 1 | { 2 | "Information": [ 3 | "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.", 4 | "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.", 5 | "dotnet lambda help", 6 | "All the command line options for the Lambda command can be specified in this file." 7 | ], 8 | "profile": "", 9 | "region": "", 10 | "configuration": "Release", 11 | "framework": "net8.0", 12 | "function-runtime": "dotnet8", 13 | "function-memory-size": 256, 14 | "function-timeout": 30, 15 | "function-handler": "WithDefaultsFile::WithDefaultsFile.Function::FunctionHandler" 16 | } -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/go_modules/__init__.py -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/broken-deps/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/awslabs/aws-lambda-builders 2 | 3 | require ( 4 | github.com/BurntSushi/toml v0.3.1 // indirect 5 | github.com/aws/aws-lambda-go v0.9999.0 // doesn't exist, broken dependency 6 | github.com/davecgh/go-spew v1.1.1 // indirect 7 | github.com/pmezard/go-difflib v1.0.0 // indirect 8 | github.com/stretchr/objx v0.1.1 // indirect 9 | github.com/stretchr/testify v1.2.2 // indirect 10 | gopkg.in/urfave/cli.v1 v1.20.0 // indirect 11 | gopkg.in/yaml.v2 v2.2.2 // indirect 12 | ) 13 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/broken-deps/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func main() { 4 | } 5 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/nested_build_folder/cmd/helloWorld/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func main() { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/nested_build_folder/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/awslabs/aws-lambda-builders -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/nested_build_folder/go.sum: -------------------------------------------------------------------------------- 1 | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= 2 | github.com/aws/aws-lambda-go v1.8.0 h1:YMCzi9FP7MNVVj9AkGpYyaqh/mvFOjhqiDtnNlWtKTg= 3 | github.com/aws/aws-lambda-go v1.8.0/go.mod h1:zUsUQhAUjYzR8AuduJPCfhBuKWUaDbQiPOG+ouzmE1A= 4 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 5 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 6 | github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 7 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 8 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 9 | gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= 10 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/no-deps-copy/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/awslabs/aws-lambda-builders 2 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/no-deps-copy/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func main() { 4 | } 5 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/no-deps/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/awslabs/aws-lambda-builders 2 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/no-deps/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func main() { 4 | } 5 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/with-deps/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/awslabs/aws-lambda-builders 2 | 3 | require ( 4 | github.com/BurntSushi/toml v0.3.1 // indirect 5 | github.com/aws/aws-lambda-go v1.8.0 6 | github.com/davecgh/go-spew v1.1.1 // indirect 7 | github.com/pmezard/go-difflib v1.0.0 // indirect 8 | github.com/stretchr/objx v0.1.1 // indirect 9 | github.com/stretchr/testify v1.2.2 // indirect 10 | gopkg.in/urfave/cli.v1 v1.20.0 // indirect 11 | gopkg.in/yaml.v2 v2.2.2 // indirect 12 | ) 13 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/with-deps/go.sum: -------------------------------------------------------------------------------- 1 | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= 2 | github.com/aws/aws-lambda-go v1.8.0 h1:YMCzi9FP7MNVVj9AkGpYyaqh/mvFOjhqiDtnNlWtKTg= 3 | github.com/aws/aws-lambda-go v1.8.0/go.mod h1:zUsUQhAUjYzR8AuduJPCfhBuKWUaDbQiPOG+ouzmE1A= 4 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 5 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 6 | github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 7 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 8 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 9 | gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= 10 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/testdata/with-deps/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/aws/aws-lambda-go/events" 5 | "github.com/aws/aws-lambda-go/lambda" 6 | ) 7 | 8 | func handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { 9 | return events.APIGatewayProxyResponse{ 10 | Body: "Hello World", 11 | StatusCode: 200, 12 | }, nil 13 | } 14 | 15 | func main() { 16 | lambda.Start(handler) 17 | } 18 | -------------------------------------------------------------------------------- /tests/integration/workflows/go_modules/utils.py: -------------------------------------------------------------------------------- 1 | from elftools.elf.elffile import ELFFile 2 | import hashlib 3 | 4 | 5 | def get_executable_arch(path): 6 | """ 7 | Returns the architecture of an executable binary 8 | 9 | Parameters 10 | ---------- 11 | path : str 12 | path to the Go binaries generated 13 | 14 | Returns 15 | ------- 16 | str 17 | Architecture type of the generated binaries 18 | """ 19 | with open(str(path), "rb") as f: 20 | e = ELFFile(f) 21 | return e.get_machine_arch() 22 | 23 | 24 | def get_md5_hexdigest(path): 25 | """ 26 | Returns the hexdigest of a binary 27 | 28 | Parameters 29 | ---------- 30 | path : str 31 | path to the Go binaries generated 32 | 33 | Returns 34 | ------- 35 | str 36 | Hex digest of the binaries 37 | """ 38 | with open(str(path), "rb") as f: 39 | hashed = hashlib.md5(f.read()) 40 | return hashed.hexdigest() 41 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps-inter-module/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | mavenCentral() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps-inter-module/common/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_11 14 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps-inter-module/common/src/main/java/aws/lambdabuilders/Foo.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Foo { 4 | public void sayHello() { 5 | System.out.println("Hello world!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps-inter-module/lambda1/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | implementation project(':common') 12 | } 13 | 14 | java.sourceCompatibility = JavaVersion.VERSION_11 15 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps-inter-module/lambda1/src/main/java/aws/lambdabuilders/Lambda1_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda1_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps-inter-module/lambda2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | implementation project(':common') 12 | } 13 | 14 | java.sourceCompatibility = JavaVersion.VERSION_11 15 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps-inter-module/lambda2/src/main/java/aws/lambdabuilders/Lambda2_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda2_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps-inter-module/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'multi-build' 2 | include 'lambda1', 'lambda2', 'common' 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | mavenCentral() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps/lambda1/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_11 14 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps/lambda1/src/main/java/aws/lambdabuilders/Lambda1_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda1_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps/lambda2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_11 14 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps/lambda2/src/main/java/aws/lambdabuilders/Lambda2_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda2_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java11/with-deps/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'multi-build' 2 | include 'lambda1', 'lambda2' 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps-inter-module/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | mavenCentral() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps-inter-module/common/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_17 14 | java.targetCompatibility = JavaVersion.VERSION_17 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps-inter-module/common/src/main/java/aws/lambdabuilders/Foo.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Foo { 4 | public void sayHello() { 5 | System.out.println("Hello world!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps-inter-module/lambda1/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | implementation project(':common') 12 | } 13 | 14 | java.sourceCompatibility = JavaVersion.VERSION_17 15 | java.targetCompatibility = JavaVersion.VERSION_17 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps-inter-module/lambda1/src/main/java/aws/lambdabuilders/Lambda1_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda1_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps-inter-module/lambda2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_17 14 | java.targetCompatibility = JavaVersion.VERSION_17 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps-inter-module/lambda2/src/main/java/aws/lambdabuilders/Lambda2_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda2_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps-inter-module/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'multi-build' 2 | include 'lambda1', 'lambda2', 'common' 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | mavenCentral() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps/lambda1/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_17 14 | java.targetCompatibility = JavaVersion.VERSION_17 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps/lambda1/src/main/java/aws/lambdabuilders/Lambda1_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda1_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps/lambda2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_17 14 | java.targetCompatibility = JavaVersion.VERSION_17 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps/lambda2/src/main/java/aws/lambdabuilders/Lambda2_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda2_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java17/with-deps/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'multi-build' 2 | include 'lambda1', 'lambda2' 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps-inter-module/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | mavenCentral() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps-inter-module/common/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_21 14 | java.targetCompatibility = JavaVersion.VERSION_21 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps-inter-module/common/src/main/java/aws/lambdabuilders/Foo.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Foo { 4 | public void sayHello() { 5 | System.out.println("Hello world!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps-inter-module/lambda1/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | implementation project(':common') 12 | } 13 | 14 | java.sourceCompatibility = JavaVersion.VERSION_21 15 | java.targetCompatibility = JavaVersion.VERSION_21 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps-inter-module/lambda1/src/main/java/aws/lambdabuilders/Lambda1_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda1_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps-inter-module/lambda2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_21 14 | java.targetCompatibility = JavaVersion.VERSION_21 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps-inter-module/lambda2/src/main/java/aws/lambdabuilders/Lambda2_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda2_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps-inter-module/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'multi-build' 2 | include 'lambda1', 'lambda2', 'common' 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | mavenCentral() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps/lambda1/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_21 14 | java.targetCompatibility = JavaVersion.VERSION_21 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps/lambda1/src/main/java/aws/lambdabuilders/Lambda1_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda1_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps/lambda2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_21 14 | java.targetCompatibility = JavaVersion.VERSION_21 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps/lambda2/src/main/java/aws/lambdabuilders/Lambda2_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda2_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java21/with-deps/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'multi-build' 2 | include 'lambda1', 'lambda2' 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps-inter-module/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | mavenCentral() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps-inter-module/common/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_1_8 14 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps-inter-module/common/src/main/java/aws/lambdabuilders/Foo.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Foo { 4 | public void sayHello() { 5 | System.out.println("Hello world!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps-inter-module/lambda1/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | implementation project(':common') 12 | } 13 | 14 | java.sourceCompatibility = JavaVersion.VERSION_1_8 15 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps-inter-module/lambda1/src/main/java/aws/lambdabuilders/Lambda1_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda1_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps-inter-module/lambda2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_1_8 14 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps-inter-module/lambda2/src/main/java/aws/lambdabuilders/Lambda2_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda2_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps-inter-module/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'multi-build' 2 | include 'lambda1', 'lambda2', 'common' 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | mavenCentral() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps/lambda1/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_1_8 14 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps/lambda1/src/main/java/aws/lambdabuilders/Lambda1_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda1_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps/lambda2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_1_8 14 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps/lambda2/src/main/java/aws/lambdabuilders/Lambda2_Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Lambda2_Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/multi-build/java8/with-deps/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'multi-build' 2 | include 'lambda1', 'lambda2' 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/layer/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'java-library' 4 | id 'maven-publish' 5 | } 6 | 7 | repositories { 8 | mavenLocal() 9 | maven { 10 | url = uri('https://repo.maven.apache.org/maven2/') 11 | } 12 | } 13 | 14 | dependencies { 15 | api 'com.amazonaws:aws-lambda-java-core:1.2.0' 16 | } 17 | 18 | group = 'aws.lambdabuilders' 19 | version = '1.0' 20 | description = 'common-layer-gradle' 21 | java.sourceCompatibility = JavaVersion.VERSION_11 22 | java.targetCompatibility = JavaVersion.VERSION_11 23 | 24 | build.finalizedBy publishToMavenLocal 25 | 26 | publishing { 27 | publications { 28 | maven(MavenPublication) { 29 | from(components.java) 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/layer/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'common-layer-gradle' -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/layer/src/main/java/aws/lambdabuilders/CommonCode.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 4 | 5 | public class CommonCode { 6 | 7 | public static void doSomethingOnLayer(final LambdaLogger logger, final String s) { 8 | logger.log("Doing something on layer" + s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-deps-broken/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:does-not-exist:1.2.3' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_11 14 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-deps-broken/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-deps-gradlew/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_11 14 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-deps-gradlew/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/java_gradle/testdata/single-build/java11/with-deps-gradlew/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-deps-gradlew/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-deps-gradlew/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_11 14 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-layer-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'maven-publish' 4 | } 5 | 6 | repositories { 7 | mavenLocal() 8 | maven { 9 | url = uri('https://repo.maven.apache.org/maven2/') 10 | } 11 | } 12 | 13 | dependencies { 14 | compileOnly 'aws.lambdabuilders:common-layer-gradle:1.0' 15 | } 16 | 17 | group = 'helloworld' 18 | version = '1.0' 19 | description = 'A sample Hello World created for SAM CLI.' 20 | java.sourceCompatibility = JavaVersion.VERSION_11 21 | java.targetCompatibility = JavaVersion.VERSION_11 22 | 23 | publishing { 24 | publications { 25 | maven(MavenPublication) { 26 | from(components.java) 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-layer-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.Context; 4 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 5 | import com.amazonaws.services.lambda.runtime.RequestHandler; 6 | 7 | import aws.lambdabuilders.CommonCode; 8 | 9 | public class Main implements RequestHandler { 10 | public Object handleRequest(final Object input, final Context context) { 11 | final LambdaLogger logger = context.getLogger(); 12 | CommonCode.doSomethingOnLayer(logger, "fromLambdaFunction"); 13 | System.out.println("Hello AWS Lambda Builders!"); 14 | return "Done"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-resources/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_11 14 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-resources/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-resources/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/java_gradle/testdata/single-build/java11/with-resources/src/main/resources/some_data.txt -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-test-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | testImplementation 'software.amazon.awssdk:s3:2.1.0' 12 | } 13 | 14 | java.sourceCompatibility = JavaVersion.VERSION_11 15 | java.targetCompatibility = JavaVersion.VERSION_11 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java11/with-test-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/layer/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'java-library' 4 | id 'maven-publish' 5 | } 6 | 7 | repositories { 8 | mavenLocal() 9 | maven { 10 | url = uri('https://repo.maven.apache.org/maven2/') 11 | } 12 | } 13 | 14 | dependencies { 15 | api 'com.amazonaws:aws-lambda-java-core:1.2.0' 16 | } 17 | 18 | group = 'aws.lambdabuilders' 19 | version = '1.0' 20 | description = 'common-layer-gradle' 21 | java.sourceCompatibility = JavaVersion.VERSION_17 22 | java.targetCompatibility = JavaVersion.VERSION_17 23 | 24 | build.finalizedBy publishToMavenLocal 25 | 26 | publishing { 27 | publications { 28 | maven(MavenPublication) { 29 | from(components.java) 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/layer/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'common-layer-gradle' -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/layer/src/main/java/aws/lambdabuilders/CommonCode.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 4 | 5 | public class CommonCode { 6 | 7 | public static void doSomethingOnLayer(final LambdaLogger logger, final String s) { 8 | logger.log("Doing something on layer" + s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-deps-broken/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:does-not-exist:1.2.3' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_17 14 | java.targetCompatibility = JavaVersion.VERSION_17 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-deps-broken/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-deps-gradlew/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_17 14 | java.targetCompatibility = JavaVersion.VERSION_17 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-deps-gradlew/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/java_gradle/testdata/single-build/java17/with-deps-gradlew/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-deps-gradlew/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-deps-gradlew/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-layer-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'maven-publish' 4 | } 5 | 6 | repositories { 7 | mavenLocal() 8 | maven { 9 | url = uri('https://repo.maven.apache.org/maven2/') 10 | } 11 | } 12 | 13 | dependencies { 14 | compileOnly 'aws.lambdabuilders:common-layer-gradle:1.0' 15 | } 16 | 17 | group = 'helloworld' 18 | version = '1.0' 19 | description = 'A sample Hello World created for SAM CLI.' 20 | java.sourceCompatibility = JavaVersion.VERSION_17 21 | java.targetCompatibility = JavaVersion.VERSION_17 22 | 23 | publishing { 24 | publications { 25 | maven(MavenPublication) { 26 | from(components.java) 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-layer-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.Context; 4 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 5 | import com.amazonaws.services.lambda.runtime.RequestHandler; 6 | 7 | import aws.lambdabuilders.CommonCode; 8 | 9 | public class Main implements RequestHandler { 10 | public Object handleRequest(final Object input, final Context context) { 11 | final LambdaLogger logger = context.getLogger(); 12 | CommonCode.doSomethingOnLayer(logger, "fromLambdaFunction"); 13 | System.out.println("Hello AWS Lambda Builders!"); 14 | return "Done"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-resources/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_17 14 | java.targetCompatibility = JavaVersion.VERSION_17 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-resources/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-resources/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/java_gradle/testdata/single-build/java17/with-resources/src/main/resources/some_data.txt -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-test-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | testImplementation 'software.amazon.awssdk:s3:2.1.0' 12 | } 13 | 14 | java.sourceCompatibility = JavaVersion.VERSION_17 15 | java.targetCompatibility = JavaVersion.VERSION_17 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java17/with-test-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/layer/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'java-library' 4 | id 'maven-publish' 5 | } 6 | 7 | repositories { 8 | mavenLocal() 9 | maven { 10 | url = uri('https://repo.maven.apache.org/maven2/') 11 | } 12 | } 13 | 14 | dependencies { 15 | api 'com.amazonaws:aws-lambda-java-core:1.2.0' 16 | } 17 | 18 | group = 'aws.lambdabuilders' 19 | version = '1.0' 20 | description = 'common-layer-gradle' 21 | java.sourceCompatibility = JavaVersion.VERSION_21 22 | java.targetCompatibility = JavaVersion.VERSION_21 23 | 24 | build.finalizedBy publishToMavenLocal 25 | 26 | publishing { 27 | publications { 28 | maven(MavenPublication) { 29 | from(components.java) 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/layer/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'common-layer-gradle' -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/layer/src/main/java/aws/lambdabuilders/CommonCode.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 4 | 5 | public class CommonCode { 6 | 7 | public static void doSomethingOnLayer(final LambdaLogger logger, final String s) { 8 | logger.log("Doing something on layer" + s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-deps-broken/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:does-not-exist:1.2.3' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_21 14 | java.targetCompatibility = JavaVersion.VERSION_21 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-deps-broken/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-deps-gradlew/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_21 14 | java.targetCompatibility = JavaVersion.VERSION_21 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-deps-gradlew/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/java_gradle/testdata/single-build/java21/with-deps-gradlew/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-deps-gradlew/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-deps-gradlew/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-layer-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'maven-publish' 4 | } 5 | 6 | repositories { 7 | mavenLocal() 8 | maven { 9 | url = uri('https://repo.maven.apache.org/maven2/') 10 | } 11 | } 12 | 13 | dependencies { 14 | compileOnly 'aws.lambdabuilders:common-layer-gradle:1.0' 15 | } 16 | 17 | group = 'helloworld' 18 | version = '1.0' 19 | description = 'A sample Hello World created for SAM CLI.' 20 | java.sourceCompatibility = JavaVersion.VERSION_21 21 | java.targetCompatibility = JavaVersion.VERSION_21 22 | 23 | publishing { 24 | publications { 25 | maven(MavenPublication) { 26 | from(components.java) 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-layer-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.Context; 4 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 5 | import com.amazonaws.services.lambda.runtime.RequestHandler; 6 | 7 | import aws.lambdabuilders.CommonCode; 8 | 9 | public class Main implements RequestHandler { 10 | public Object handleRequest(final Object input, final Context context) { 11 | final LambdaLogger logger = context.getLogger(); 12 | CommonCode.doSomethingOnLayer(logger, "fromLambdaFunction"); 13 | System.out.println("Hello AWS Lambda Builders!"); 14 | return "Done"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-resources/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_21 14 | java.targetCompatibility = JavaVersion.VERSION_21 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-resources/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-resources/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/java_gradle/testdata/single-build/java21/with-resources/src/main/resources/some_data.txt -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-test-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | testImplementation 'software.amazon.awssdk:s3:2.1.0' 12 | } 13 | 14 | java.sourceCompatibility = JavaVersion.VERSION_21 15 | java.targetCompatibility = JavaVersion.VERSION_21 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java21/with-test-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/layer/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'java-library' 4 | id 'maven-publish' 5 | } 6 | 7 | repositories { 8 | mavenLocal() 9 | maven { 10 | url = uri('https://repo.maven.apache.org/maven2/') 11 | } 12 | } 13 | 14 | dependencies { 15 | api 'com.amazonaws:aws-lambda-java-core:1.2.0' 16 | } 17 | 18 | group = 'aws.lambdabuilders' 19 | version = '1.0' 20 | description = 'common-layer-gradle' 21 | java.sourceCompatibility = JavaVersion.VERSION_1_8 22 | java.targetCompatibility = JavaVersion.VERSION_1_8 23 | 24 | build.finalizedBy publishToMavenLocal 25 | 26 | publishing { 27 | publications { 28 | maven(MavenPublication) { 29 | from(components.java) 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/layer/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'common-layer-gradle' -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/layer/src/main/java/aws/lambdabuilders/CommonCode.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 4 | 5 | public class CommonCode { 6 | 7 | public static void doSomethingOnLayer(final LambdaLogger logger, final String s) { 8 | logger.log("Doing something on layer" + s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-deps-broken/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:does-not-exist:1.2.3' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_1_8 14 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-deps-broken/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-deps-gradlew/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_1_8 14 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-deps-gradlew/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/java_gradle/testdata/single-build/java8/with-deps-gradlew/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-deps-gradlew/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-deps-gradlew/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_1_8 14 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-layer-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'maven-publish' 4 | } 5 | 6 | repositories { 7 | mavenLocal() 8 | maven { 9 | url = uri('https://repo.maven.apache.org/maven2/') 10 | } 11 | } 12 | 13 | dependencies { 14 | compileOnly 'aws.lambdabuilders:common-layer-gradle:1.0' 15 | } 16 | 17 | group = 'helloworld' 18 | version = '1.0' 19 | description = 'A sample Hello World created for SAM CLI.' 20 | java.sourceCompatibility = JavaVersion.VERSION_1_8 21 | java.targetCompatibility = JavaVersion.VERSION_1_8 22 | 23 | publishing { 24 | publications { 25 | maven(MavenPublication) { 26 | from(components.java) 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-layer-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.Context; 4 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 5 | import com.amazonaws.services.lambda.runtime.RequestHandler; 6 | 7 | import aws.lambdabuilders.CommonCode; 8 | 9 | public class Main implements RequestHandler { 10 | public Object handleRequest(final Object input, final Context context) { 11 | final LambdaLogger logger = context.getLogger(); 12 | CommonCode.doSomethingOnLayer(logger, "fromLambdaFunction"); 13 | System.out.println("Hello AWS Lambda Builders!"); 14 | return "Done"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-resources/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | } 12 | 13 | java.sourceCompatibility = JavaVersion.VERSION_1_8 14 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-resources/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-resources/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/java_gradle/testdata/single-build/java8/with-resources/src/main/resources/some_data.txt -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-test-deps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | implementation 'software.amazon.awssdk:annotations:2.1.0' 11 | testImplementation 'software.amazon.awssdk:s3:2.1.0' 12 | } 13 | 14 | java.sourceCompatibility = JavaVersion.VERSION_1_8 15 | java.targetCompatibility = JavaVersion.VERSION_1_8 -------------------------------------------------------------------------------- /tests/integration/workflows/java_gradle/testdata/single-build/java8/with-test-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/layer/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | aws.lambdabuilders 8 | common-layer 9 | 1.0 10 | jar 11 | 12 | 13 | 11 14 | 11 15 | 16 | 17 | 18 | 19 | 20 | com.amazonaws 21 | aws-lambda-java-core 22 | 1.2.0 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/layer/src/main/java/aws/lambdabuilders/CommonCode.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 4 | 5 | public class CommonCode { 6 | 7 | public static void doSomethingOnLayer(final LambdaLogger logger, final String s) { 8 | logger.log("Doing something on layer" + s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/no-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 11 11 | 11 12 | 13 | 14 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/no-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/no-deps/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/with-deps-broken/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 11 11 | 11 12 | 13 | 14 | 15 | 16 | software.amazon.awssdk 17 | annotations 18 | 2.1.0-helloworld 19 | 20 | 21 | junit 22 | junit 23 | 4.12 24 | test 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/with-deps-broken/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/with-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 11 11 | 11 12 | 13 | 14 | 15 | 16 | software.amazon.awssdk 17 | annotations 18 | 2.1.0 19 | 20 | 21 | junit 22 | junit 23 | 4.12 24 | test 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/with-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/with-deps/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/with-layer-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 11 11 | 11 12 | 13 | 14 | 15 | 16 | aws.lambdabuilders 17 | common-layer 18 | 1.0 19 | provided 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java11/with-layer-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.Context; 4 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 5 | import com.amazonaws.services.lambda.runtime.RequestHandler; 6 | 7 | import aws.lambdabuilders.CommonCode; 8 | 9 | public class Main implements RequestHandler { 10 | public Object handleRequest(final Object input, final Context context) { 11 | final LambdaLogger logger = context.getLogger(); 12 | CommonCode.doSomethingOnLayer(logger, "fromLambdaFunction"); 13 | System.out.println("Hello AWS Lambda Builders!"); 14 | return "Done"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/layer/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | aws.lambdabuilders 8 | common-layer 9 | 1.0 10 | jar 11 | 12 | 13 | 17 14 | 17 15 | 16 | 17 | 18 | 19 | 20 | com.amazonaws 21 | aws-lambda-java-core 22 | 1.2.0 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/layer/src/main/java/aws/lambdabuilders/CommonCode.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 4 | 5 | public class CommonCode { 6 | 7 | public static void doSomethingOnLayer(final LambdaLogger logger, final String s) { 8 | logger.log("Doing something on layer" + s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/no-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 17 11 | 17 12 | 13 | 14 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/no-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/no-deps/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/with-deps-broken/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 17 11 | 17 12 | 13 | 14 | 15 | 16 | software.amazon.awssdk 17 | annotations 18 | 2.1.0-helloworld 19 | 20 | 21 | junit 22 | junit 23 | 4.12 24 | test 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/with-deps-broken/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/with-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 17 11 | 17 12 | 13 | 14 | 15 | 16 | software.amazon.awssdk 17 | annotations 18 | 2.1.0 19 | 20 | 21 | junit 22 | junit 23 | 4.12 24 | test 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/with-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/with-deps/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/with-layer-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 17 11 | 17 12 | 13 | 14 | 15 | 16 | aws.lambdabuilders 17 | common-layer 18 | 1.0 19 | provided 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java17/with-layer-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.Context; 4 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 5 | import com.amazonaws.services.lambda.runtime.RequestHandler; 6 | 7 | import aws.lambdabuilders.CommonCode; 8 | 9 | public class Main implements RequestHandler { 10 | public Object handleRequest(final Object input, final Context context) { 11 | final LambdaLogger logger = context.getLogger(); 12 | CommonCode.doSomethingOnLayer(logger, "fromLambdaFunction"); 13 | System.out.println("Hello AWS Lambda Builders!"); 14 | return "Done"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/layer/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | aws.lambdabuilders 8 | common-layer 9 | 1.0 10 | jar 11 | 12 | 13 | 21 14 | 21 15 | 16 | 17 | 18 | 19 | 20 | com.amazonaws 21 | aws-lambda-java-core 22 | 1.2.0 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/layer/src/main/java/aws/lambdabuilders/CommonCode.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 4 | 5 | public class CommonCode { 6 | 7 | public static void doSomethingOnLayer(final LambdaLogger logger, final String s) { 8 | logger.log("Doing something on layer" + s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/no-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 21 11 | 21 12 | 13 | 14 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/no-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/no-deps/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/with-deps-broken/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 21 11 | 21 12 | 13 | 14 | 15 | 16 | software.amazon.awssdk 17 | annotations 18 | 2.1.0-helloworld 19 | 20 | 21 | junit 22 | junit 23 | 4.12 24 | test 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/with-deps-broken/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/with-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 21 11 | 21 12 | 13 | 14 | 15 | 16 | software.amazon.awssdk 17 | annotations 18 | 2.1.0 19 | 20 | 21 | junit 22 | junit 23 | 4.12 24 | test 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/with-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/with-deps/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/with-layer-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 21 11 | 21 12 | 13 | 14 | 15 | 16 | aws.lambdabuilders 17 | common-layer 18 | 1.0 19 | provided 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java21/with-layer-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.Context; 4 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 5 | import com.amazonaws.services.lambda.runtime.RequestHandler; 6 | 7 | import aws.lambdabuilders.CommonCode; 8 | 9 | public class Main implements RequestHandler { 10 | public Object handleRequest(final Object input, final Context context) { 11 | final LambdaLogger logger = context.getLogger(); 12 | CommonCode.doSomethingOnLayer(logger, "fromLambdaFunction"); 13 | System.out.println("Hello AWS Lambda Builders!"); 14 | return "Done"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/layer/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | aws.lambdabuilders 8 | common-layer 9 | 1.0 10 | jar 11 | 12 | 13 | 8 14 | 8 15 | 16 | 17 | 18 | 19 | 20 | com.amazonaws 21 | aws-lambda-java-core 22 | 1.2.0 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/layer/src/main/java/aws/lambdabuilders/CommonCode.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 4 | 5 | public class CommonCode { 6 | 7 | public static void doSomethingOnLayer(final LambdaLogger logger, final String s) { 8 | logger.log("Doing something on layer" + s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/no-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 8 11 | 8 12 | 13 | 14 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/no-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/no-deps/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/with-deps-broken/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 8 11 | 8 12 | 13 | 14 | 15 | 16 | software.amazon.awssdk 17 | annotations 18 | 2.1.0-helloworld 19 | 20 | 21 | junit 22 | junit 23 | 4.12 24 | test 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/with-deps-broken/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/with-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 8 11 | 8 12 | 13 | 14 | 15 | 16 | software.amazon.awssdk 17 | annotations 18 | 2.1.0 19 | 20 | 21 | junit 22 | junit 23 | 4.12 24 | test 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/with-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | public class Main { 4 | public static void main(String[] args) { 5 | System.out.println("Hello AWS Lambda Builders!"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/with-deps/src/main/resources/some_data.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/with-layer-deps/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | helloworld 5 | HelloWorld 6 | 1.0 7 | jar 8 | A sample Hello World created for SAM CLI. 9 | 10 | 8 11 | 8 12 | 13 | 14 | 15 | 16 | aws.lambdabuilders 17 | common-layer 18 | 1.0 19 | provided 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /tests/integration/workflows/java_maven/testdata/single-build/java8/with-layer-deps/src/main/java/aws/lambdabuilders/Main.java: -------------------------------------------------------------------------------- 1 | package aws.lambdabuilders; 2 | 3 | import com.amazonaws.services.lambda.runtime.Context; 4 | import com.amazonaws.services.lambda.runtime.LambdaLogger; 5 | import com.amazonaws.services.lambda.runtime.RequestHandler; 6 | 7 | import aws.lambdabuilders.CommonCode; 8 | 9 | public class Main implements RequestHandler { 10 | public Object handleRequest(final Object input, final Context context) { 11 | final LambdaLogger logger = context.getLogger(); 12 | CommonCode.doSomethingOnLayer(logger, "fromLambdaFunction"); 13 | System.out.println("Hello AWS Lambda Builders!"); 14 | return "Done"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/broken-deps/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/broken-deps/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/broken-deps/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "brokendeps", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": ["included.js"], 6 | "keywords": [], 7 | "author": "", 8 | "license": "APACHE2.0", 9 | "dependencies": { 10 | "aws-sdk": "2.997.999" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/empty-test-script/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "testscript", 3 | "version": "1.0.0", 4 | "description": "", 5 | "scripts": { 6 | "test": "" 7 | }, 8 | "keywords": [], 9 | "author": "", 10 | "license": "APACHE2.0" 11 | } 12 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/excluded-files/.aws-sam/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/nodejs_npm/testdata/excluded-files/.aws-sam/.keep -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/excluded-files/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/excluded-files/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodeps", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": ["included.js"], 6 | "keywords": [], 7 | "author": "", 8 | "license": "APACHE2.0" 9 | } 10 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/manifest-outside-root-with-local-dependency/manifest/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "manifest-outside-root", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": [ 6 | "../src/included.js" 7 | ], 8 | "keywords": [], 9 | "author": "", 10 | "license": "APACHE2.0", 11 | "dependencies": { 12 | "axios": "*", 13 | "local-dependency": "file:../../npm-deps" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/manifest-outside-root-with-local-dependency/src/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/manifest-outside-root-with-local-dependency/src/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/manifest-outside-root/manifest/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "manifest-outside-root", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": [ 6 | "../src/included.js" 7 | ], 8 | "keywords": [], 9 | "author": "", 10 | "license": "APACHE2.0", 11 | "dependencies": { 12 | "minimal-request-promise": "*" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/manifest-outside-root/src/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/manifest-outside-root/src/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/no-deps/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/no-deps/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/no-deps/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodeps", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": ["included.js"], 6 | "keywords": [], 7 | "author": "", 8 | "license": "APACHE2.0" 9 | } 10 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/no-manifest/app.js: -------------------------------------------------------------------------------- 1 | const HELLO_WORLD = "Hello world!" 2 | console.log(HELLO_WORLD) -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/npm-deps/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/npm-deps/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/npm-deps/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npmdeps", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": ["included.js"], 6 | "keywords": [], 7 | "author": "", 8 | "license": "APACHE2.0", 9 | "main": "included.js", 10 | "dependencies": { 11 | "minimal-request-promise": "*" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/npmrc/.npmrc: -------------------------------------------------------------------------------- 1 | optional=false -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/npmrc/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/npmrc/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/npmrc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npmdeps", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": ["included.js"], 6 | "keywords": [], 7 | "author": "", 8 | "license": "APACHE2.0", 9 | "dependencies": { 10 | "fake-http-request": "*" 11 | }, 12 | "optionalDependencies": { 13 | "minimal-request-promise": "*" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock-and-shrinkwrap/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock-and-shrinkwrap/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock-and-shrinkwrap/npm-shrinkwrap.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "package-lock-and-shrinkwrap", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "package-lock-and-shrinkwrap", 9 | "version": "1.0.0", 10 | "license": "APACHE2.0", 11 | "dependencies": { 12 | "minimal-request-promise": "*" 13 | } 14 | }, 15 | "node_modules/minimal-request-promise": { 16 | "version": "1.5.0", 17 | "resolved": "https://registry.npmjs.org/minimal-request-promise/-/minimal-request-promise-1.5.0.tgz", 18 | "integrity": "sha1-YPXX9VtAJtGXB04uFVYm1MxcLrw=" 19 | } 20 | }, 21 | "dependencies": { 22 | "minimal-request-promise": { 23 | "version": "1.5.0", 24 | "resolved": "https://registry.npmjs.org/minimal-request-promise/-/minimal-request-promise-1.5.0.tgz", 25 | "integrity": "sha1-YPXX9VtAJtGXB04uFVYm1MxcLrw=" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock-and-shrinkwrap/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "package-lock-and-shrinkwrap", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "package-lock-and-shrinkwrap", 9 | "version": "1.0.0", 10 | "license": "APACHE2.0", 11 | "dependencies": { 12 | "minimal-request-promise": "*" 13 | } 14 | }, 15 | "node_modules/minimal-request-promise": { 16 | "version": "1.5.0", 17 | "resolved": "https://registry.npmjs.org/minimal-request-promise/-/minimal-request-promise-1.5.0.tgz", 18 | "integrity": "sha1-YPXX9VtAJtGXB04uFVYm1MxcLrw=" 19 | } 20 | }, 21 | "dependencies": { 22 | "minimal-request-promise": { 23 | "version": "1.5.0", 24 | "resolved": "https://registry.npmjs.org/minimal-request-promise/-/minimal-request-promise-1.5.0.tgz", 25 | "integrity": "sha1-YPXX9VtAJtGXB04uFVYm1MxcLrw=" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock-and-shrinkwrap/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "package-lock-and-shrinkwrap", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": ["included.js"], 6 | "keywords": [], 7 | "author": "", 8 | "license": "APACHE2.0", 9 | "dependencies": { 10 | "minimal-request-promise": "*" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "testdata", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": {} 6 | } 7 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "package-lock", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "package-lock", 9 | "version": "1.0.0", 10 | "license": "APACHE2.0", 11 | "dependencies": { 12 | "minimal-request-promise": "*" 13 | } 14 | }, 15 | "node_modules/minimal-request-promise": { 16 | "version": "1.5.0", 17 | "resolved": "https://registry.npmjs.org/minimal-request-promise/-/minimal-request-promise-1.5.0.tgz", 18 | "integrity": "sha1-YPXX9VtAJtGXB04uFVYm1MxcLrw=" 19 | } 20 | }, 21 | "dependencies": { 22 | "minimal-request-promise": { 23 | "version": "1.5.0", 24 | "resolved": "https://registry.npmjs.org/minimal-request-promise/-/minimal-request-promise-1.5.0.tgz", 25 | "integrity": "sha1-YPXX9VtAJtGXB04uFVYm1MxcLrw=" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/package-lock/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "package-lock", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": ["included.js"], 6 | "keywords": [], 7 | "author": "", 8 | "license": "APACHE2.0", 9 | "dependencies": { 10 | "minimal-request-promise": "*" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/shrinkwrap/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/shrinkwrap/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/shrinkwrap/npm-shrinkwrap.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shrinkwrap", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "shrinkwrap", 9 | "version": "1.0.0", 10 | "license": "APACHE2.0", 11 | "dependencies": { 12 | "minimal-request-promise": "*" 13 | } 14 | }, 15 | "node_modules/minimal-request-promise": { 16 | "version": "1.5.0", 17 | "resolved": "https://registry.npmjs.org/minimal-request-promise/-/minimal-request-promise-1.5.0.tgz", 18 | "integrity": "sha1-YPXX9VtAJtGXB04uFVYm1MxcLrw=" 19 | } 20 | }, 21 | "dependencies": { 22 | "minimal-request-promise": { 23 | "version": "1.5.0", 24 | "resolved": "https://registry.npmjs.org/minimal-request-promise/-/minimal-request-promise-1.5.0.tgz", 25 | "integrity": "sha1-YPXX9VtAJtGXB04uFVYm1MxcLrw=" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/shrinkwrap/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shrinkwrap", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": ["included.js"], 6 | "keywords": [], 7 | "author": "", 8 | "license": "APACHE2.0", 9 | "dependencies": { 10 | "minimal-request-promise": "*" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/test-script-to-create-file/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "testscript", 3 | "version": "1.0.0", 4 | "description": "", 5 | "scripts": { 6 | "test": "touch created.js" 7 | }, 8 | "keywords": [], 9 | "author": "", 10 | "license": "APACHE2.0" 11 | } 12 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/with-local-dependency/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/with-local-dependency/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const localdep = require('local-dependency'); 3 | exports.handler = async (event, context) => { 4 | return localdep; 5 | }; -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm/testdata/with-local-dependency/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-local-dependency", 3 | "version": "1.0.0", 4 | "description": "", 5 | "files": ["included.js"], 6 | "keywords": [], 7 | "author": "", 8 | "license": "APACHE2.0", 9 | "main": "included.js", 10 | "dependencies": { 11 | "local-dependency": "file:../npm-deps" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/nodejs_npm_esbuild/__init__.py -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/esbuild-binary/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "esbuild-binary", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "esbuild": "^0.14.13" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/esbuild-manifest-outside-root-with-local-depends/manifest/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-deps-esbuild-typescript", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "dependencies": { 9 | "@types/aws-lambda": "^8.10.76", 10 | "axios": "*", 11 | "local-dependency": "file:../../with-deps-esbuild" 12 | }, 13 | "devDependencies": { 14 | "esbuild": "^0.11.23" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/esbuild-manifest-outside-root-with-local-depends/src/included.ts: -------------------------------------------------------------------------------- 1 | import { APIGatewayProxyEvent, APIGatewayProxyResult } from "aws-lambda"; 2 | import {axios} from "axios"; 3 | import * as requestPromise from "request-promise"; 4 | 5 | 6 | export const lambdaHandler = async (event: APIGatewayProxyEvent): Promise => { 7 | const queries = JSON.stringify(event.queryStringParameters); 8 | return { 9 | statusCode: 200, 10 | body: "OK" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/esbuild-manifest-outside-root/manifest/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-deps-esbuild-typescript", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "dependencies": { 9 | "@types/aws-lambda": "^8.10.76", 10 | "minimal-request-promise": "^1.5.0" 11 | }, 12 | "devDependencies": { 13 | "esbuild": "^0.11.23" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/esbuild-manifest-outside-root/src/included.ts: -------------------------------------------------------------------------------- 1 | import { APIGatewayProxyEvent, APIGatewayProxyResult } from "aws-lambda"; 2 | import * as requestPromise from 'request-promise'; 3 | 4 | export const lambdaHandler = async (event: APIGatewayProxyEvent): Promise => { 5 | const queries = JSON.stringify(event.queryStringParameters); 6 | return { 7 | statusCode: 200, 8 | body: "OK" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/implicit-file-types/implicit.js: -------------------------------------------------------------------------------- 1 | const x = 10 -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/implicit-file-types/included.ts: -------------------------------------------------------------------------------- 1 | import { APIGatewayProxyEvent, APIGatewayProxyResult } from "aws-lambda"; 2 | 3 | export const lambdaHandler = async (event: APIGatewayProxyEvent): Promise => { 4 | const queries = JSON.stringify(event.queryStringParameters); 5 | return { 6 | statusCode: 200, 7 | body: "OK" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/implicit-file-types/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-deps-esbuild-typescript", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "dependencies": { 9 | "@types/aws-lambda": "^8.10.76" 10 | }, 11 | "devDependencies": { 12 | "esbuild": "^0.11.23" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-deps-esbuild-loader/.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-deps-esbuild-loader/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-deps-esbuild-loader/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | import { muses } from './reference.reference'; 3 | 4 | process.stdout.write("===\nThe Muses\n===\n\n"); 5 | process.stdout.write(muses.map(muse => `\t${muse.name}: ${muse.description}`).join("\n")); 6 | 7 | const x = 1; 8 | module.exports = x; 9 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-deps-esbuild-loader/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodeps-esbuild", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "devDependencies": { 9 | "esbuild": "^0.14.36" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-deps-esbuild-loader/reference.reference: -------------------------------------------------------------------------------- 1 | { 2 | "muses": [ 3 | { "name": "calliope", "description": "eloquence and heroic poetry" }, 4 | { "name": "erato", "description": "lyric or erotic poetry" }, 5 | { "name": "melpomene", "description": "tragedy" }, 6 | { "name": "polymnia", "description": "sacred poetry" }, 7 | { "name": "terpsichore", "description": "dance" }, 8 | { "name": "thalia", "description": "comedy" }, 9 | { "name": "urania", "description": "astronomy and astrology" } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-deps-esbuild/.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-deps-esbuild/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-deps-esbuild/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | module.exports = x; 4 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-deps-esbuild/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodeps-esbuild", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "main": "included.js", 9 | "devDependencies": { 10 | "esbuild": "^0.14.36" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/no-package-esbuild/included.js: -------------------------------------------------------------------------------- 1 | const number = 100 -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-externals/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-externals/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const request = require('minimal-request-promise'); 3 | exports.handler = async (event, context) => { 4 | const result = await(request.get(event.url)); 5 | return request; 6 | }; 7 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-externals/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-deps-esbuild", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "dependencies": { 9 | "minimal-request-promise": "^1.5.0" 10 | }, 11 | "devDependencies": { 12 | "esbuild": "^0.11.23" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-multiple-entrypoints/.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-multiple-entrypoints/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-multiple-entrypoints/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 1; 3 | module.exports = x; 4 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-multiple-entrypoints/included2.js: -------------------------------------------------------------------------------- 1 | //included2 2 | const y = 1; 3 | module.exports = y; 4 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-multiple-entrypoints/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-deps-esbuild-multiple-entrypoints", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "dependencies": { 9 | "minimal-request-promise": "^1.5.0" 10 | }, 11 | "devDependencies": { 12 | "esbuild": "^0.11.23" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-typescript/included.ts: -------------------------------------------------------------------------------- 1 | import { APIGatewayProxyEvent, APIGatewayProxyResult } from "aws-lambda"; 2 | 3 | export const lambdaHandler = async (event: APIGatewayProxyEvent): Promise => { 4 | const queries = JSON.stringify(event.queryStringParameters); 5 | return { 6 | statusCode: 200, 7 | body: "OK" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild-typescript/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-deps-esbuild-typescript", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "dependencies": { 9 | "@types/aws-lambda": "^8.10.76" 10 | }, 11 | "devDependencies": { 12 | "esbuild": "^0.11.23" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const request = require('minimal-request-promise'); 3 | exports.handler = async (event, context) => { 4 | const result = await(request.get(event.url)); 5 | return request; 6 | }; 7 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-esbuild/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-deps-esbuild", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "dependencies": { 9 | "minimal-request-promise": "^1.5.0" 10 | }, 11 | "devDependencies": { 12 | "esbuild": "^0.11.23" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-no-node_modules/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-no-node_modules/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const x = 5 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-deps-no-node_modules/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-deps-esbuild", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "dependencies": { 9 | "minimal-request-promise": "^1.5.0" 10 | }, 11 | "devDependencies": { 12 | "esbuild": "0.14.13" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-local-dependency/excluded.js: -------------------------------------------------------------------------------- 1 | //excluded 2 | const x = 1; 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-local-dependency/included.js: -------------------------------------------------------------------------------- 1 | //included 2 | const localdep = require('local-dependency'); 3 | exports.handler = async (event, context) => { 4 | return localdep; 5 | }; 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/nodejs_npm_esbuild/testdata/with-local-dependency/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "with-local-dependency", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "author": "", 7 | "license": "APACHE2.0", 8 | "main": "included.js", 9 | "dependencies": { 10 | "local-dependency": "file:../no-deps-esbuild" 11 | }, 12 | "devDependencies": { 13 | "esbuild": "^0.11.23" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/python_pip/__init__.py -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/.nox: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/python_pip/testdata/.nox -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/.tox: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/python_pip/testdata/.tox -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/python_pip/testdata/__init__.py -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/htmlcov: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/python_pip/testdata/htmlcov -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/local-dependencies/setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | name = local_package 3 | description = "Use src/ setup of a python project to demonstrate local package resolution" 4 | version = 0.0.0 5 | 6 | [options] 7 | zip_safe = False 8 | packages = find: 9 | package_dir = 10 | =src 11 | install_requires = 12 | requests==2.23.0 13 | include_package_data = True 14 | 15 | [options.packages.find] 16 | where = src 17 | -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/local-dependencies/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup() 4 | -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/local-dependencies/src/local_package/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/python_pip/testdata/local-dependencies/src/local_package/__init__.py -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/local-dependencies/src/local_package/entrypoint.py: -------------------------------------------------------------------------------- 1 | def handler(event, ctx): 2 | pass 3 | -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/main.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | 3 | 4 | def lambda_handler(event, context): 5 | # Just return the value of PI with two decimals - 3.14 6 | return "{0:.2f}".format(numpy.pi) 7 | -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/requirements-inflate.txt: -------------------------------------------------------------------------------- 1 | inflate64==0.3.1; python_version < '3.8' --no-binary=:inflate64: 2 | inflate64==1.0.0; python_version >= '3.8' --no-binary=:inflate64: -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/requirements-invalid.txt: -------------------------------------------------------------------------------- 1 | boto3=1.19.99 -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/requirements-numpy.txt: -------------------------------------------------------------------------------- 1 | numpy==1.20.3; python_version == '3.8' 2 | numpy==1.20.3; python_version == '3.9' 3 | numpy==1.23.5; python_version == '3.10' 4 | numpy==1.23.5; python_version == '3.11' 5 | numpy==2.1.2; python_version == '3.12' 6 | numpy==2.1.2; python_version == '3.13' 7 | -------------------------------------------------------------------------------- /tests/integration/workflows/python_pip/testdata/requirements-wrapt.txt: -------------------------------------------------------------------------------- 1 | wrapt==1.13.3 -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/broken-deps/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'aws-record', '~> 2' # Requires aws-sdk-core v3 4 | gem 'aws-sdk-core', '~> 2' # Incompatible 5 | -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/broken-deps/handler.rb: -------------------------------------------------------------------------------- 1 | def handle(event:, context:) 2 | "Failure! How did you run this?" 3 | end 4 | -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/excluded-files/.aws-sam/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/integration/workflows/ruby_bundler/testdata/excluded-files/.aws-sam/.keep -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/excluded-files/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # This shouldn't even need to exist, that's a pending feature request. 4 | # If no dependencies, leave blank. 5 | -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/excluded-files/handler.rb: -------------------------------------------------------------------------------- 1 | def handle(event:,context:) 2 | "Hello!" 3 | end 4 | -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/excludes-gemfile/handler.rb: -------------------------------------------------------------------------------- 1 | def handle(event:,context:) 2 | "Hello!" 3 | end 4 | -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/no-deps/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # This shouldn't even need to exist, that's a pending feature request. 4 | # If no dependencies, leave blank. 5 | -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/no-deps/handler.rb: -------------------------------------------------------------------------------- 1 | def handle(event:,context:) 2 | "Hello!" 3 | end 4 | -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/with-deps/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'aws-record', '~> 2' 4 | -------------------------------------------------------------------------------- /tests/integration/workflows/ruby_bundler/testdata/with-deps/handler.rb: -------------------------------------------------------------------------------- 1 | require 'aws-record' 2 | 3 | def handle(event:,context:) 4 | "Success!" 5 | end 6 | -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/fail/.gitignore: -------------------------------------------------------------------------------- 1 | target -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/fail/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "fail" 3 | version = "0.1.0" 4 | edition = "2018" 5 | 6 | [dependencies] 7 | lambda_runtime = "0.5.1" 8 | serde_json = "1" 9 | tokio = { version = "1.17", features = ["macros", "rt"] } -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/fail/src/main.rs: -------------------------------------------------------------------------------- 1 | use lambda::{lambda, Context}; 2 | use serde_json::Value; 3 | 4 | // fails to compile because missing semi colon 5 | type Error = Box 6 | 7 | #[tokio::main] 8 | async fn main(event: Value, _: Context) -> Result { 9 | Ok(event) 10 | } -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/hello/.gitignore: -------------------------------------------------------------------------------- 1 | target -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/hello/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "hello" 3 | version = "0.1.0" 4 | edition = "2018" 5 | 6 | [dependencies] 7 | lambda_runtime = "0.5.1" 8 | serde = "1" 9 | tokio = { version = "1.17", features = ["macros", "rt"] } -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/multi-binary/.gitignore: -------------------------------------------------------------------------------- 1 | target -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/multi-binary/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "test-handler" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # Starting in Rust 1.62 you can use `cargo add` to add dependencies 7 | # to your project. 8 | # 9 | # If you're using an older Rust version, 10 | # download cargo-edit(https://github.com/killercup/cargo-edit#installation) 11 | # to install the `add` subcommand. 12 | # 13 | # Running `cargo add DEPENDENCY_NAME` will 14 | # add the latest version of a dependency to the list, 15 | # and it will keep the alphabetic ordering for you. 16 | 17 | [dependencies] 18 | 19 | lambda_runtime = "0.6.0" 20 | serde = "1.0.136" 21 | tokio = { version = "1", features = ["macros"] } 22 | tracing = { version = "0.1", features = ["log"] } 23 | tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt"] } 24 | 25 | [[bin]] 26 | name = "function_a" 27 | path = "src/function_a.rs" 28 | 29 | [[bin]] 30 | name = "function_b" 31 | path = "src/function_b.rs" 32 | -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/workspaces/.gitignore: -------------------------------------------------------------------------------- 1 | target -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/workspaces/Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["foo", "bar"] -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/workspaces/bar/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "bar" 3 | version = "0.1.0" 4 | edition = "2018" 5 | 6 | [dependencies] 7 | lambda_runtime = "0.5.1" 8 | serde = "1" 9 | tokio = { version = "1.17", features = ["macros", "rt"] } -------------------------------------------------------------------------------- /tests/integration/workflows/rust_cargo/testdata/workspaces/foo/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "foo" 3 | version = "0.1.0" 4 | edition = "2018" 5 | 6 | [dependencies] 7 | lambda_runtime = "0.5.1" 8 | serde = "1" 9 | tokio = { version = "1.17", features = ["macros", "rt"] } -------------------------------------------------------------------------------- /tests/testing_utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | 4 | def read_link_without_junction_prefix(path: str) -> str: 5 | """ 6 | When our tests run on CI on Windows, it seems to use junctions, which causes symlink targets 7 | have a prefix. This function reads a symlink and returns the target without the prefix (if any). 8 | 9 | Parameters 10 | ---------- 11 | path : str 12 | Path which may or may not have a junction prefix. 13 | 14 | Returns 15 | ------- 16 | str 17 | Path without junction prefix, if any. 18 | """ 19 | target = os.readlink(path) 20 | if target.startswith("\\\\?\\"): # \\?\, with escaped slashes 21 | target = target[4:] 22 | return target 23 | -------------------------------------------------------------------------------- /tests/unit/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/.gitkeep -------------------------------------------------------------------------------- /tests/unit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/__init__.py -------------------------------------------------------------------------------- /tests/unit/test_path_resolver.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | 3 | from unittest.mock import patch 4 | 5 | import os 6 | 7 | from aws_lambda_builders import utils 8 | from aws_lambda_builders.path_resolver import PathResolver 9 | 10 | 11 | class TestPathResolver(TestCase): 12 | def setUp(self): 13 | self.path_resolver = PathResolver(runtime="chitti2.0", binary="chitti", additional_binaries=["chitti2"]) 14 | 15 | def test_inits(self): 16 | self.assertEqual(self.path_resolver.runtime, "chitti2.0") 17 | self.assertEqual(self.path_resolver.binary, "chitti") 18 | self.assertEqual(self.path_resolver.executables, ["chitti2.0", "chitti", "chitti2"]) 19 | 20 | def test_which_fails(self): 21 | with self.assertRaises(ValueError): 22 | utils.which = lambda x: None 23 | self.path_resolver._which() 24 | 25 | def test_which_success_immediate(self): 26 | with patch.object(self.path_resolver, "_which") as which_mock: 27 | which_mock.return_value = os.getcwd() 28 | self.assertEqual(self.path_resolver.exec_paths, os.getcwd()) 29 | -------------------------------------------------------------------------------- /tests/unit/test_validator.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | 3 | from aws_lambda_builders.validator import RuntimeValidator 4 | from aws_lambda_builders.exceptions import UnsupportedRuntimeError, UnsupportedArchitectureError 5 | 6 | 7 | class TestRuntimeValidator(TestCase): 8 | def setUp(self): 9 | self.validator = RuntimeValidator(runtime="python3.8", architecture="arm64") 10 | 11 | def test_inits(self): 12 | self.assertEqual(self.validator.runtime, "python3.8") 13 | self.assertEqual(self.validator.architecture, "arm64") 14 | 15 | def test_validate_runtime(self): 16 | self.validator.validate("/usr/bin/python3.8") 17 | self.assertEqual(self.validator._runtime_path, "/usr/bin/python3.8") 18 | 19 | def test_validate_with_unsupported_runtime(self): 20 | validator = RuntimeValidator(runtime="unknown_runtime", architecture="x86_64") 21 | with self.assertRaises(UnsupportedRuntimeError): 22 | validator.validate("/usr/bin/unknown_runtime") 23 | 24 | def test_validate_with_runtime_and_incompatible_architecture(self): 25 | runtime_list = ["python3.12"] 26 | for runtime in runtime_list: 27 | validator = RuntimeValidator(runtime=runtime, architecture="invalid_arch") 28 | with self.assertRaises(UnsupportedArchitectureError): 29 | validator.validate("/usr/bin/{}".format(runtime)) 30 | -------------------------------------------------------------------------------- /tests/unit/workflows/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/dotnet_clipackage/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/dotnet_clipackage/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/go_modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/go_modules/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/go_modules/test_actions.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | from unittest.mock import patch 3 | 4 | from aws_lambda_builders.actions import ActionFailedError 5 | from aws_lambda_builders.workflows.go_modules.actions import GoModulesBuildAction 6 | from aws_lambda_builders.workflows.go_modules.builder import BuilderError 7 | 8 | 9 | class TestGoModulesBuildAction(TestCase): 10 | @patch("aws_lambda_builders.workflows.go_modules.builder.GoModulesBuilder") 11 | def test_runs_bundle_install(self, BuilderMock): 12 | builder = BuilderMock.return_value 13 | action = GoModulesBuildAction("source_dir", "output_path", builder) 14 | action.execute() 15 | builder.build.assert_called_with("source_dir", "output_path") 16 | 17 | @patch("aws_lambda_builders.workflows.go_modules.builder.GoModulesBuilder") 18 | def test_raises_action_failed_on_failure(self, BuilderMock): 19 | builder = BuilderMock.return_value 20 | builder.build.side_effect = BuilderError(message="Fail") 21 | action = GoModulesBuildAction("source_dir", "output_path", builder) 22 | with self.assertRaises(ActionFailedError) as raised: 23 | action.execute() 24 | self.assertEqual(raised.exception.args[0], "Builder Failed: Fail") 25 | -------------------------------------------------------------------------------- /tests/unit/workflows/java/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/java/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/java/test_utils.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | 3 | from parameterized import parameterized 4 | 5 | from aws_lambda_builders.workflows.java.utils import ( 6 | jar_file_filter, 7 | ) 8 | 9 | 10 | class TestJavaUtils(TestCase): 11 | @parameterized.expand( 12 | [ 13 | (None, False), 14 | (123, False), 15 | ("not_a_jar_file.txt", False), 16 | ("jar_file.jar", True), 17 | ] 18 | ) 19 | def test_jar_file_filter(self, file_name, expected): 20 | self.assertEqual(jar_file_filter(file_name), expected) 21 | -------------------------------------------------------------------------------- /tests/unit/workflows/java_gradle/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/java_gradle/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/java_maven/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/java_maven/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/java_maven/test_maven_resolver.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | 3 | from unittest.mock import patch 4 | from aws_lambda_builders.workflows.java_maven.maven_resolver import MavenResolver 5 | 6 | 7 | class TestMavenResolver(TestCase): 8 | @patch("aws_lambda_builders.workflows.java.utils.OSUtils") 9 | def setUp(self, MockOSUtils): 10 | self.mock_os_utils = MockOSUtils.return_value 11 | self.mock_os_utils.is_windows.side_effect = [False] 12 | 13 | def test_returns_maven_on_path(self): 14 | maven_path = "/path/to/mvn" 15 | self.mock_os_utils.which.side_effect = lambda executable, executable_search_paths: [maven_path] 16 | 17 | resolver = MavenResolver(os_utils=self.mock_os_utils) 18 | self.assertEqual(resolver.exec_paths, [maven_path]) 19 | 20 | def test_throws_value_error_if_no_exec_found(self): 21 | self.mock_os_utils.which.side_effect = lambda executable, executable_search_paths: [] 22 | resolver = MavenResolver(os_utils=self.mock_os_utils) 23 | with self.assertRaises(ValueError) as raised: 24 | resolver.exec_paths() 25 | self.assertEqual(raised.exception.args[0], "No Maven executable found!") 26 | -------------------------------------------------------------------------------- /tests/unit/workflows/nodejs_npm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/nodejs_npm/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/nodejs_npm_esbuild/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/nodejs_npm_esbuild/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/python_pip/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/python_pip/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/ruby_bundler/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/ruby_bundler/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/rust_cargo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-lambda-builders/05e15de5aa9d024485fcdad63c1722a612246854/tests/unit/workflows/rust_cargo/__init__.py -------------------------------------------------------------------------------- /tests/unit/workflows/rust_cargo/test_cargo_lambda.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | 3 | from aws_lambda_builders.workflows.rust_cargo.actions import CargoLambdaExecutionException 4 | from aws_lambda_builders.workflows.rust_cargo.cargo_lambda import SubprocessCargoLambda 5 | 6 | 7 | class TestSubprocessCargoLambda(TestCase): 8 | def test_raises_RustCargoLambdaBuilderError_if_which_returns_no_results(self): 9 | def which(cmd, executable_search_paths): 10 | return [] 11 | 12 | proc = SubprocessCargoLambda(which=which) 13 | 14 | with self.assertRaises(CargoLambdaExecutionException) as raised: 15 | proc.run("cargo lambda build", "/source_dir") 16 | 17 | self.assertEqual( 18 | raised.exception.args[0], 19 | "Cargo Lambda failed: Cannot find Cargo Lambda. Cargo Lambda must be installed on the host machine to use this feature. " 20 | "Follow the gettings started guide to learn how to install it: https://www.cargo-lambda.info/guide/getting-started.html", 21 | ) 22 | -------------------------------------------------------------------------------- /tests/unit/workflows/rust_cargo/test_utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import subprocess 4 | 5 | from unittest import TestCase 6 | 7 | from aws_lambda_builders.workflows.rust_cargo.utils import OSUtils 8 | 9 | 10 | class TestOSUtils(TestCase): 11 | def test_popen_runs_a_process_and_returns_outcome(self): 12 | cwd_py = os.path.join(os.path.dirname(__file__), "..", "..", "..", "functional", "testdata", "cwd.py") 13 | p = OSUtils().popen([sys.executable, cwd_py], stdout=subprocess.PIPE, stderr=subprocess.PIPE) 14 | out, err = p.communicate() 15 | self.assertEqual(p.returncode, 0) 16 | self.assertEqual(out.decode("utf8").strip(), os.getcwd()) 17 | 18 | def test_popen_can_accept_cwd(self): 19 | testdata_dir = os.path.join(os.path.dirname(__file__), "..", "..", "..", "functional", "testdata") 20 | p = OSUtils().popen( 21 | [sys.executable, "cwd.py"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=testdata_dir 22 | ) 23 | out, err = p.communicate() 24 | self.assertEqual(p.returncode, 0) 25 | self.assertEqual(out.decode("utf8").strip(), os.path.abspath(testdata_dir)) 26 | --------------------------------------------------------------------------------