Skip to content

Commit a36c892

Browse files
Merge from aws/aws-sam-cli/develop
2 parents a36911f + bd7c5dd commit a36c892

14 files changed

+1057
-1026
lines changed

.github/dependabot.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ updates:
99
prefix: chore
1010
include: scope
1111
reviewers:
12-
- aws/serverless-application-experience-sbt
1312
- aws/aws-lambda-tooling
1413
open-pull-requests-limit: 10
1514

@@ -22,7 +21,6 @@ updates:
2221
prefix: chore
2322
include: scope
2423
reviewers:
25-
- aws/serverless-application-experience-sbt
2624
- aws/aws-lambda-tooling
2725
open-pull-requests-limit: 10
2826
groups:

appveyor-linux-binary.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ install:
4646
- sh: "ls /usr/"
4747
# install latest maven which is compatible with jdk17
4848
- sh: "sudo apt-get -y remove maven"
49-
- sh: "wget https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.zip -P /tmp"
49+
- sh: "wget https://dlcdn.apache.org/maven/maven-3/3.9.10/binaries/apache-maven-3.9.10-bin.zip -P /tmp"
5050
- sh: "sudo unzip -d /opt/mvn /tmp/apache-maven-*.zip"
51-
- sh: "PATH=/opt/mvn/apache-maven-3.9.5/bin:$PATH"
51+
- sh: "PATH=/opt/mvn/apache-maven-3.9.10/bin:$PATH"
5252
- sh: "mvn --version"
5353

5454
- sh: "source ${HOME}/venv${PYTHON_VERSION}/bin/activate"

appveyor-ubuntu.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ install:
4747
- sh: "ls /usr/"
4848
# install latest maven which is compatible with jdk17
4949
- sh: "sudo apt-get -y remove maven"
50-
- sh: "wget https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.zip -P /tmp"
50+
- sh: "wget https://dlcdn.apache.org/maven/maven-3/3.9.10/binaries/apache-maven-3.9.10-bin.zip -P /tmp"
5151
- sh: "sudo unzip -d /opt/mvn /tmp/apache-maven-*.zip"
52-
- sh: "PATH=/opt/mvn/apache-maven-3.9.5/bin:$PATH"
52+
- sh: "PATH=/opt/mvn/apache-maven-3.9.10/bin:$PATH"
5353
- sh: "mvn --version"
5454

5555
- sh: "source ${HOME}/venv${PYTHON_VERSION}/bin/activate"

appveyor-windows-binary.yml

Lines changed: 59 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,20 @@ install:
7373
- "echo %PATH%"
7474
- "python --version"
7575
- ps: "Restart-Service docker"
76+
7677
# Switch to Docker Linux containers
77-
- ps: Switch-DockerLinux
78+
- ps: |
79+
$dockerCliPath = "$Env:ProgramFiles\Docker\Docker\DockerCli.exe"
80+
if (Test-Path $dockerCliPath) {
81+
& $dockerCliPath -SwitchLinuxEngine
82+
Write-Host "Docker successfully switched to Linux container mode"
83+
} else {
84+
Write-Host "DockerCli.exe not found at expected location. Installing tree and exploring Docker directory structure..."
85+
choco install tree
86+
tree "$Env:ProgramFiles\Docker" /F /A
87+
Write-Host "Build stopped for Docker CLI investigation."
88+
exit 1
89+
}
7890
- "docker info"
7991
- "docker version"
8092

@@ -91,27 +103,27 @@ install:
91103
- "git --version"
92104

93105
# Get testing env vars
94-
- ps: "
95-
If (Test-Path env:BY_CANARY){
96-
python -m virtualenv venv_env_vars;
97-
./venv_env_vars/Scripts/pip install boto3;
98-
$test_env_var = ./venv_env_vars/Scripts/python tests/get_testing_resources.py;
99-
$test_env_var_json = ConvertFrom-Json $test_env_var;
100-
101-
$env:CI_ACCESS_ROLE_AWS_ACCESS_KEY_ID = $env:AWS_ACCESS_KEY_ID;
102-
$env:CI_ACCESS_ROLE_AWS_SECRET_ACCESS_KEY = $env:AWS_SECRET_ACCESS_KEY;
103-
$env:CI_ACCESS_ROLE_AWS_SESSION_TOKEN = $env:AWS_SESSION_TOKEN;
104-
105-
$env:AWS_ACCESS_KEY_ID = $test_env_var_json.accessKeyID;
106-
$env:AWS_SECRET_ACCESS_KEY = $test_env_var_json.secretAccessKey;
107-
$env:AWS_SESSION_TOKEN = $test_env_var_json.sessionToken;
108-
$env:TASK_TOKEN = $test_env_var_json.taskToken;
109-
$env:AWS_S3_TESTING = $test_env_var_json.TestBucketName;
110-
$env:AWS_ECR_TESTING = $test_env_var_json.TestECRURI;
111-
$env:AWS_KMS_KEY = $test_env_var_json.TestKMSKeyArn;
112-
$env:AWS_SIGNING_PROFILE_NAME = $test_env_var_json.TestSigningProfileName;
113-
$env:AWS_SIGNING_PROFILE_VERSION_ARN = $test_env_var_json.TestSigningProfileARN;
114-
}"
106+
- ps: |
107+
If (Test-Path env:BY_CANARY){
108+
python -m virtualenv venv_env_vars;
109+
./venv_env_vars/Scripts/pip install boto3;
110+
$test_env_var = ./venv_env_vars/Scripts/python tests/get_testing_resources.py;
111+
$test_env_var_json = ConvertFrom-Json $test_env_var;
112+
113+
$env:CI_ACCESS_ROLE_AWS_ACCESS_KEY_ID = $env:AWS_ACCESS_KEY_ID;
114+
$env:CI_ACCESS_ROLE_AWS_SECRET_ACCESS_KEY = $env:AWS_SECRET_ACCESS_KEY;
115+
$env:CI_ACCESS_ROLE_AWS_SESSION_TOKEN = $env:AWS_SESSION_TOKEN;
116+
117+
$env:AWS_ACCESS_KEY_ID = $test_env_var_json.accessKeyID;
118+
$env:AWS_SECRET_ACCESS_KEY = $test_env_var_json.secretAccessKey;
119+
$env:AWS_SESSION_TOKEN = $test_env_var_json.sessionToken;
120+
$env:TASK_TOKEN = $test_env_var_json.taskToken;
121+
$env:AWS_S3_TESTING = $test_env_var_json.TestBucketName;
122+
$env:AWS_ECR_TESTING = $test_env_var_json.TestECRURI;
123+
$env:AWS_KMS_KEY = $test_env_var_json.TestKMSKeyArn;
124+
$env:AWS_SIGNING_PROFILE_NAME = $test_env_var_json.TestSigningProfileName;
125+
$env:AWS_SIGNING_PROFILE_VERSION_ARN = $test_env_var_json.TestSigningProfileARN;
126+
}
115127
116128
117129
# Create new virtual environment with chosen python version and activate it
@@ -120,19 +132,18 @@ install:
120132
- "python --version"
121133

122134
# Install testing pre-reqs without installing sam-cli from source
123-
- pip install -r requirements/pre-dev.txt"
124-
- pip install -r requirements/dev.txt"
125-
- pip install -r requirements/base.txt
126-
- pytest --version
135+
- "pip install -r requirements/pre-dev.txt"
136+
- "pip install -r requirements/dev.txt"
137+
- "pip install -r requirements/base.txt"
138+
- "pytest --version"
127139

128140
# Install aws cli
129141
- "pip install awscli"
130142

131143
# Install aws-sam-cli MSI binary
132-
- ps: "
133-
Invoke-WebRequest -Uri https://github.com/aws/aws-sam-cli/releases/download/sam-cli-nightly/AWS_SAM_CLI_64_PY3.msi -OutFile aws-sam-cli-installer.msi;
134-
Start-Process 'C:\\Windows\\System32\\msiexec.exe' -ArgumentList '/i aws-sam-cli-installer.msi /qn /norestart' -wait -PassThru;
135-
"
144+
- ps: |
145+
Invoke-WebRequest -Uri https://github.com/aws/aws-sam-cli/releases/download/sam-cli-nightly/AWS_SAM_CLI_64_PY3.msi -OutFile aws-sam-cli-installer.msi;
146+
Start-Process 'C:\\Windows\\System32\\msiexec.exe' -ArgumentList '/i aws-sam-cli-installer.msi /qn /norestart' -wait -PassThru;
136147
- 'set PATH=C:\Program Files\Amazon\AWSSAMCLI_NIGHTLY\bin\;%PATH%'
137148
- 'sam-nightly --version'
138149

@@ -141,11 +152,10 @@ install:
141152

142153
# use amazon-ecr-credential-helper
143154
- choco install amazon-ecr-credential-helper
144-
- ps: "
145-
$docker_config = Get-Content $env:HOME/.docker/config.json -raw | ConvertFrom-Json;
146-
$docker_config.credsStore = 'ecr-login';
147-
$docker_config | ConvertTo-Json | set-content $env:HOME/.docker/config.json;
148-
"
155+
- ps: |
156+
$docker_config = Get-Content $env:HOME/.docker/config.json -raw | ConvertFrom-Json;
157+
$docker_config.credsStore = 'ecr-login';
158+
$docker_config | ConvertTo-Json | set-content $env:HOME/.docker/config.json;
149159
- ps: "get-content $env:HOME/.docker/config.json"
150160

151161
# claim some disk space before starting the tests
@@ -156,22 +166,22 @@ install:
156166
on_finish:
157167
# Upload test reports as artifacts
158168
- ps: Get-ChildItem .\TEST_REPORT-*.json | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
159-
- ps: '
160-
If (Test-Path env:BY_CANARY){
161-
$env:AWS_ACCESS_KEY_ID = $env:TEST_REPORT_S3_BUCKET_ACCESS_KEY_ID;
162-
$env:AWS_SECRET_ACCESS_KEY = $env:TEST_REPORT_S3_BUCKET_SECRET_ACCESS_KEY;
163-
$env:AWS_SESSION_TOKEN = $env:TEST_REPORT_S3_BUCKET_SESSION_TOKEN;
164-
aws s3 cp ".\" "s3://$env:TEST_REPORT_S3_BUCKET_NAME/appveyor/$env:APPVEYOR_PROJECT_SLUG/$env:APPVEYOR_BUILD_ID/$env:APPVEYOR_JOB_ID/" --recursive --exclude "*" --include "TEST_REPORT-*.json" --region us-west-2
165-
}'
169+
- ps: |
170+
If (Test-Path env:BY_CANARY){
171+
$env:AWS_ACCESS_KEY_ID = $env:TEST_REPORT_S3_BUCKET_ACCESS_KEY_ID;
172+
$env:AWS_SECRET_ACCESS_KEY = $env:TEST_REPORT_S3_BUCKET_SECRET_ACCESS_KEY;
173+
$env:AWS_SESSION_TOKEN = $env:TEST_REPORT_S3_BUCKET_SESSION_TOKEN;
174+
aws s3 cp ".\" "s3://$env:TEST_REPORT_S3_BUCKET_NAME/appveyor/$env:APPVEYOR_PROJECT_SLUG/$env:APPVEYOR_BUILD_ID/$env:APPVEYOR_JOB_ID/" --recursive --exclude "*" --include "TEST_REPORT-*.json" --region us-west-2
175+
}
166176
167177
# notify success
168-
- ps: "
169-
If (Test-Path env:BY_CANARY){
170-
$env:AWS_ACCESS_KEY_ID = $env:CI_ACCESS_ROLE_AWS_ACCESS_KEY_ID;
171-
$env:AWS_SECRET_ACCESS_KEY = $env:CI_ACCESS_ROLE_AWS_SECRET_ACCESS_KEY;
172-
$env:AWS_SESSION_TOKEN = $env:CI_ACCESS_ROLE_AWS_SESSION_TOKEN;
173-
aws stepfunctions send-task-success --task-token \"$env:TASK_TOKEN\" --task-output \"{}\" --region us-west-2;
174-
}"
178+
- ps: |
179+
If (Test-Path env:BY_CANARY){
180+
$env:AWS_ACCESS_KEY_ID = $env:CI_ACCESS_ROLE_AWS_ACCESS_KEY_ID;
181+
$env:AWS_SECRET_ACCESS_KEY = $env:CI_ACCESS_ROLE_AWS_SECRET_ACCESS_KEY;
182+
$env:AWS_SESSION_TOKEN = $env:CI_ACCESS_ROLE_AWS_SESSION_TOKEN;
183+
aws stepfunctions send-task-success --task-token "$env:TASK_TOKEN" --task-output "{}" --region us-west-2;
184+
}
175185
176186
177187
for:
@@ -307,4 +317,3 @@ for:
307317
# Uncomment for RDP
308318
# on_finish:
309319
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
310-

appveyor-windows.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ install:
7171
- "python --version"
7272
- ps: "Restart-Service docker"
7373
# Switch to Docker Linux containers
74-
- ps: Switch-DockerLinux
74+
- ps: '& $Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchLinuxEngine'
7575
- "docker info"
7676
- "docker version"
7777

requirements/base.txt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,24 @@ click==8.1.8
33
Flask<3.2
44
boto3>=1.29.2,<2
55
jmespath~=1.0.1
6-
ruamel_yaml~=0.18.12
6+
ruamel_yaml~=0.18.14
77
PyYAML~=6.0
88
cookiecutter~=2.6.0
9-
aws-sam-translator==1.98.0
9+
aws-sam-translator==1.99.0
1010
#docker minor version updates can include breaking changes. Auto update micro version only.
1111
docker~=7.1.0
1212
dateparser~=1.2
13-
requests~=2.32.3
13+
requests~=2.32.4
1414
aws_lambda_builders==1.54.0
15-
tomlkit==0.13.2
15+
tomlkit==0.13.3
1616
# NOTE: For supporting watchdog in Python3.8, version is pinned to 4.0.2 as
1717
# version 5.0.2 introduced some breaking changes for versions > Python3.8
1818
watchdog==4.0.2
1919

2020
rich~=14.0.0
21-
pyopenssl~=24.3.0
21+
pyopenssl~=25.1.0
2222
# Pin to <4.18 to until SAM-T no longer uses RefResolver
23-
jsonschema<4.24
23+
jsonschema<4.25
2424

2525
# Needed for supporting Protocol in Python 3.7, Protocol class became public with python3.8
2626
typing_extensions>=4.4.0,<5
@@ -31,7 +31,7 @@ regex!=2021.10.8
3131
tzlocal==5.3.1
3232

3333
#Adding cfn-lint dependency for SAM validate
34-
cfn-lint~=1.35.4
34+
cfn-lint~=1.36.0
3535

3636
# Type checking boto3 objects
37-
boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray,sqs,kinesis]==1.38.29
37+
boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray,sqs,kinesis]==1.38.39

requirements/dev.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
-r pre-dev.txt
22

3-
coverage==7.8.0; python_version>="3.9"
3+
coverage==7.8.2; python_version>="3.9"
44
coverage==7.6.1; python_version<"3.9"
5-
pytest-cov==6.1.1; python_version>="3.9"
5+
pytest-cov==6.2.1; python_version>="3.9"
66
pytest-cov==5.0.0; python_version<"3.9"
77

88

@@ -19,18 +19,18 @@ types-setuptools==80.9.0.20250529
1919
types-Pygments==2.19.0.20250516
2020
types-colorama==0.4.15.20240311
2121
types-dateparser==1.2.0.20250601
22-
types-docutils==0.21.0.20250526
22+
types-docutils==0.21.0.20250604
2323
types-jsonschema==4.24.0.20250528
2424
types-pyOpenSSL==24.1.0.20240722
2525
# lucashuy: pin `types-request` based on the Python version since newer versions of
2626
# the types require a newer version of requests, which is only installed in newer versions of Python
2727
types-requests==2.31.0.6; python_version<"3.10"
28-
types-requests==2.32.0.20250602; python_version>="3.10"
28+
types-requests==2.32.4.20250611; python_version>="3.10"
2929
types-urllib3==1.26.25.14
3030

3131
# Test requirements
3232

33-
pytest==8.4.0
33+
pytest==8.4.1
3434

3535
parameterized==0.9.0
3636
pytest-xdist==3.7.0

requirements/pre-dev.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ruff==0.11.12
1+
ruff==0.11.13

requirements/pyinstaller-build.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Executable binary builder requirements
2-
setuptools==78.1.1
3-
pyinstaller==6.13.0
2+
setuptools==80.9.0
3+
pyinstaller==6.14.1

0 commit comments

Comments
 (0)