165 lines
3.3 KiB
Nix
165 lines
3.3 KiB
Nix
{
|
|
lib,
|
|
python3,
|
|
fetchFromGitHub,
|
|
git,
|
|
testers,
|
|
aws-sam-cli,
|
|
nix-update-script,
|
|
enableTelemetry ? false,
|
|
}:
|
|
|
|
python3.pkgs.buildPythonApplication rec {
|
|
pname = "aws-sam-cli";
|
|
version = "1.127.0";
|
|
pyproject = true;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "aws";
|
|
repo = "aws-sam-cli";
|
|
rev = "refs/tags/v${version}";
|
|
hash = "sha256-5/zXvO5xrNkhPCei4O/nMXA/e18VNrED2lpBbflaJLQ=";
|
|
};
|
|
|
|
build-system = with python3.pkgs; [ setuptools ];
|
|
|
|
pythonRelaxDeps = [
|
|
"aws-lambda-builders"
|
|
"aws-sam-translator"
|
|
"boto3-stubs"
|
|
"cfn-lint"
|
|
"cookiecutter"
|
|
"docker"
|
|
"jsonschema"
|
|
"pyopenssl"
|
|
"requests"
|
|
"rich"
|
|
"ruamel-yaml"
|
|
"tomlkit"
|
|
"tzlocal"
|
|
"watchdog"
|
|
];
|
|
|
|
dependencies =
|
|
with python3.pkgs;
|
|
[
|
|
aws-lambda-builders
|
|
aws-sam-translator
|
|
boto3
|
|
boto3-stubs
|
|
cfn-lint
|
|
chevron
|
|
click
|
|
cookiecutter
|
|
dateparser
|
|
docker
|
|
flask
|
|
jsonschema
|
|
pyopenssl
|
|
pyyaml
|
|
requests
|
|
rich
|
|
ruamel-yaml
|
|
tomlkit
|
|
typing-extensions
|
|
tzlocal
|
|
watchdog
|
|
]
|
|
++ (with python3.pkgs.boto3-stubs.optional-dependencies; [
|
|
apigateway
|
|
cloudformation
|
|
ecr
|
|
iam
|
|
kinesis
|
|
lambda
|
|
s3
|
|
schemas
|
|
secretsmanager
|
|
signer
|
|
sqs
|
|
stepfunctions
|
|
sts
|
|
xray
|
|
]);
|
|
|
|
postFixup = ''
|
|
# Disable telemetry: https://github.com/aws/aws-sam-cli/issues/1272
|
|
wrapProgram $out/bin/sam \
|
|
--set SAM_CLI_TELEMETRY ${if enableTelemetry then "1" else "0"} \
|
|
--prefix PATH : $out/bin:${lib.makeBinPath [ git ]}
|
|
'';
|
|
|
|
nativeCheckInputs = with python3.pkgs; [
|
|
filelock
|
|
flaky
|
|
jaraco-text
|
|
parameterized
|
|
psutil
|
|
pytest-timeout
|
|
pytest-xdist
|
|
pytestCheckHook
|
|
];
|
|
|
|
preCheck = ''
|
|
export HOME=$(mktemp -d)
|
|
export PATH="$PATH:$out/bin:${lib.makeBinPath [ git ]}"
|
|
'';
|
|
|
|
pytestFlagsArray = [
|
|
"tests"
|
|
# Disable warnings
|
|
"-W"
|
|
"ignore::DeprecationWarning"
|
|
];
|
|
|
|
disabledTestPaths = [
|
|
# Disable tests that requires networking or complex setup
|
|
"tests/end_to_end"
|
|
"tests/integration"
|
|
"tests/regression"
|
|
"tests/smoke"
|
|
"tests/unit/lib/telemetry"
|
|
"tests/unit/hook_packages/terraform/hooks/prepare/"
|
|
"tests/unit/lib/observability/cw_logs/"
|
|
"tests/unit/lib/build_module/"
|
|
# Disable flaky tests
|
|
"tests/unit/lib/samconfig/test_samconfig.py"
|
|
];
|
|
|
|
disabledTests = [
|
|
# Disable flaky tests
|
|
"test_update_stage"
|
|
"test_delete_deployment"
|
|
"test_request_with_no_data"
|
|
"test_import_should_succeed_for_a_defined_hidden_package_540_pkg_resources_py2_warn"
|
|
];
|
|
|
|
pythonImportsCheck = [ "samcli" ];
|
|
|
|
passthru = {
|
|
tests.version = testers.testVersion {
|
|
package = aws-sam-cli;
|
|
command = "sam --version";
|
|
};
|
|
updateScript = nix-update-script {
|
|
extraArgs = [
|
|
"--version-regex"
|
|
"^v([0-9.]+)$"
|
|
];
|
|
};
|
|
};
|
|
|
|
__darwinAllowLocalNetworking = true;
|
|
|
|
meta = with lib; {
|
|
description = "CLI tool for local development and testing of Serverless applications";
|
|
homepage = "https://github.com/aws/aws-sam-cli";
|
|
changelog = "https://github.com/aws/aws-sam-cli/releases/tag/v${version}";
|
|
license = licenses.asl20;
|
|
mainProgram = "sam";
|
|
maintainers = with maintainers; [
|
|
lo1tuma
|
|
anthonyroussel
|
|
];
|
|
};
|
|
}
|