5555 - ubuntu-latest
5656 - windows-latest
5757 python :
58- - " 3.9 "
58+ - " 3.10 "
5959 - " 3.11"
6060 steps :
6161 # This allows temp file creation on drive D, which won't trigger windows defender scan and leads to faster IO
6565 echo "TEMP=D:\\Temp" >> $env:GITHUB_ENV
6666 if : ${{ matrix.os == 'windows-latest' }}
6767 - uses : actions/checkout@v6
68- - uses : actions /setup-python@v6
68+ - uses : astral-sh /setup-uv@v7
6969 with :
7070 python-version : ${{ matrix.python }}
71+ cache-python : false
72+ - name : Install and activate Python
73+ run : bash tests/setup-python-uv.sh ${{ matrix.python }}
74+ shell : bash
7175 - run : test -f "./.github/ISSUE_TEMPLATE/Bug_report.md" # prevent Bug_report.md from being renamed or deleted
7276 - run : make pr
7377
@@ -80,10 +84,12 @@ jobs:
8084 runs-on : ubuntu-latest
8185 steps :
8286 - uses : actions/checkout@v6
83- - uses : actions/setup-python@v6
84- name : Install Python 3.11
87+ - uses : astral-sh/setup-uv@v7
8588 with :
86- python-version : 3.11
89+ python-version : " 3.11"
90+ cache-python : false
91+ - name : Install and activate Python
92+ run : bash tests/setup-python-uv.sh 3.11
8793 - run : make init
8894 - run : |
8995 diff <( cat schema/samcli.json ) <( python -m schema.make_schema && cat schema/samcli.json ) && \
@@ -115,7 +121,7 @@ jobs:
115121 - ubuntu-latest
116122 - windows-latest
117123 python :
118- - " 3.9 "
124+ - " 3.10 "
119125 - " 3.11"
120126 # folders that is commented below requires credentials, no need to spare time to run them
121127 tests_config :
@@ -130,33 +136,33 @@ jobs:
130136 # - "delete"
131137 # - "deploy"
132138 - name : " integ-all-other"
133- params : " -n 2 --reruns 3 tests/integration/init tests/integration/local tests/integration/pipeline tests/integration/root tests/integration/scripts tests/integration/telemetry tests/integration/docs"
139+ params : " -n 2 --reruns 3 tests/integration/init tests/integration/local tests/integration/pipeline tests/integration/root tests/integration/scripts tests/integration/telemetry tests/integration/docs --ignore=tests/integration/local/invoke/test_invoke_durable.py --ignore=tests/integration/local/start_api/test_start_api_durable.py --ignore=tests/integration/local/start_lambda/test_start_lambda_durable.py"
140+ - name : " durable-functions"
141+ params : " --reruns 3 tests/integration/local/invoke/test_invoke_durable.py tests/integration/local/start_api/test_start_api_durable.py tests/integration/local/start_lambda/test_start_lambda_durable.py"
134142 # - "list"
135143 # - "logs"
136144 # - "package"
137145 # - "publish"
138146 # - "sync"
139147 # - "traces"
140148 # - "validate"
149+ exclude :
150+ - os : windows-latest
151+ tests_config :
152+ name : " durable-functions"
141153 steps :
142154 - uses : actions/checkout@v6
143155 - name : Set TEMP to D:/Temp
144156 run : |
145157 mkdir "D:\\Temp"
146158 echo "TEMP=D:\\Temp" >> $env:GITHUB_ENV
147159 if : ${{ matrix.os == 'windows-latest' }}
148- - uses : actions /setup-python@v6
160+ - uses : astral-sh /setup-uv@v7
149161 with :
150- # set last version as the one in matrix to make it default
151- python-version : |
152- 3.9
153- 3.10
154- 3.11
155- 3.12
156- 3.13
157- 3.14
158- ${{ matrix.python }}
159- cache : ' pip'
162+ python-version : ${{ matrix.python }}
163+ cache-python : false
164+ - name : Install Python versions
165+ run : bash tests/setup-python-uv.sh 3.9 3.10 3.11 3.12 3.13 3.14 ${{ matrix.python }}
160166 - uses : actions/setup-go@v6
161167 with :
162168 go-version : ' 1.19'
@@ -165,7 +171,7 @@ jobs:
165171 ruby-version : " 3.3"
166172 - uses : actions/setup-node@v6
167173 with :
168- node-version : 22
174+ node-version : 24
169175 - uses : actions/setup-java@v5
170176 with :
171177 distribution : ' corretto'
@@ -179,24 +185,17 @@ jobs:
179185 with :
180186 dotnet-version : ' 10.0.x'
181187 # Install and configure Rust & Cargo Lambda
182- - name : Install and configure Rust & Cargo Lambda
188+ - name : Install Rust toolchain and cargo-lambda
183189 if : ${{ matrix.os == 'ubuntu-latest' }}
184- run : |
185- : install rustup if needed
186- if ! command -v rustup &> /dev/null ; then
187- curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --default-toolchain none -y
188- echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH
189- fi
190- rustup toolchain install stable --profile minimal --no-self-update
191- rustup default stable
192- pip install cargo-lambda==$CARGO_LAMBDA_VERSION
193- echo "$HOME/.local/bin" >> $GITHUB_PATH
190+ run : bash tests/install-rust.sh --uv
194191 - name : Init samdev
195192 run : make init
196193 - name : uv install setuptools in Python3.12
197- run : uv pip install --system --python python3 .12 --upgrade pip setuptools
194+ run : uv pip install --break- system-packages --python "$(uv python find 3 .12)" --upgrade pip setuptools
198195 - name : Run integration tests for ${{ matrix.tests_config.name }}
199196 run : pytest -vv ${{ matrix.tests_config.params }}
197+ env :
198+ FORCE_RUN_DOCKER_TEST : ${{ matrix.tests_config.name == 'durable-functions' && '1' || '' }}
200199
201200 smoke-and-functional-tests :
202201 name : ${{ matrix.tests_config.name }} / ${{ matrix.tests_config.os }} / ${{ matrix.python }}
@@ -213,7 +212,7 @@ jobs:
213212 fail-fast : false
214213 matrix :
215214 python :
216- - " 3.9 "
215+ - " 3.10 "
217216 - " 3.11"
218217 tests_config :
219218 - name : " Smoke & Functional Tests - All"
@@ -239,10 +238,12 @@ jobs:
239238 mkdir "D:\\Temp"
240239 echo "TEMP=D:\\Temp" >> $env:GITHUB_ENV
241240 if : ${{ matrix.os == 'windows-latest' }}
242- - uses : actions /setup-python@v6
241+ - uses : astral-sh /setup-uv@v7
243242 with :
244243 python-version : ${{ matrix.python }}
245- cache : ' pip'
244+ cache-python : false
245+ - name : Install and activate Python
246+ run : bash tests/setup-python-uv.sh ${{ matrix.python }}
246247 - name : Init samdev
247248 run : make init
248249 - name : Run ${{ matrix.tests_config.name }}
@@ -269,16 +270,13 @@ jobs:
269270 mkdir "D:\\Temp"
270271 echo "TEMP=D:\\Temp" >> $env:GITHUB_ENV
271272 if : ${{ matrix.os == 'windows-latest' }}
272- - uses : actions /setup-python@v6
273+ - uses : astral-sh /setup-uv@v7
273274 with :
274- # These are the versions of Python that correspond to the supported Lambda runtimes
275- python-version : |
276- 3.14
277- 3.9
278- 3.10
279- 3.11
280- 3.12
281- 3.13
275+ python-version : " 3.10"
276+ cache-python : false
277+ - name : Install Python versions
278+ shell : bash
279+ run : bash tests/setup-python-uv.sh 3.9 3.10 3.11 3.12 3.13 3.14
282280 - name : Stop Docker Linux
283281 if : ${{ matrix.os == 'ubuntu-latest' }}
284282 run : |
@@ -292,7 +290,7 @@ jobs:
292290 - name : Init samdev
293291 run : make init
294292 - name : uv install setuptools in Python3.12
295- run : uv pip install --system --python python3 .12 --upgrade pip setuptools
293+ run : uv pip install --break- system-packages --python "$(uv python find 3 .12)" --upgrade pip setuptools
296294 - name : Check Docker not Running
297295 run : docker info
298296 id : run-docker-info
0 commit comments