├── .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