File tree 5 files changed +47
-7
lines changed
5 files changed +47
-7
lines changed Original file line number Diff line number Diff line change @@ -480,3 +480,32 @@ jobs:
480
480
- name : " Validate global Python install"
481
481
shell : bash -el {0}
482
482
run : python ./scripts/check_system_python.py --uv ./uv
483
+
484
+ system-test-amazonlinux :
485
+ needs : build-binary-linux
486
+ name : " check system | amazonlinux"
487
+ runs-on : ubuntu-latest
488
+ container : amazonlinux:2023
489
+ steps :
490
+ - name : " Install base requirements"
491
+ run : |
492
+ # Needed for `actions/checkout`
493
+ yum install tar gzip which -y
494
+ - uses : actions/checkout@v4
495
+
496
+ - name : " Install Python"
497
+ run : yum install python3 python3-pip -y
498
+
499
+ - name : " Download binary"
500
+ uses : actions/download-artifact@v4
501
+ with :
502
+ name : uv-linux-${{ github.sha }}
503
+
504
+ - name : " Prepare binary"
505
+ run : chmod +x ./uv
506
+
507
+ - name : " Print Python path"
508
+ run : echo $(which python3)
509
+
510
+ - name : " Validate global Python install"
511
+ run : python3 scripts/check_system_python.py --uv ./uv
Original file line number Diff line number Diff line change @@ -182,8 +182,7 @@ impl<'a> BuildContext for BuildDispatch<'a> {
182
182
let tags = self . interpreter . tags ( ) ?;
183
183
184
184
// Determine the set of installed packages.
185
- let site_packages =
186
- SitePackages :: from_executable ( venv) . context ( "Failed to list installed packages" ) ?;
185
+ let site_packages = SitePackages :: from_executable ( venv) ?;
187
186
188
187
let Plan {
189
188
local,
Original file line number Diff line number Diff line change @@ -42,8 +42,22 @@ impl<'a> SitePackages<'a> {
42
42
let mut by_name = FxHashMap :: default ( ) ;
43
43
let mut by_url = FxHashMap :: default ( ) ;
44
44
45
+ // Read the site-packages directory.
46
+ let site_packages = match fs:: read_dir ( venv. site_packages ( ) ) {
47
+ Ok ( site_packages) => site_packages,
48
+ Err ( err) if err. kind ( ) == std:: io:: ErrorKind :: NotFound => {
49
+ return Ok ( Self {
50
+ venv,
51
+ distributions,
52
+ by_name,
53
+ by_url,
54
+ } ) ;
55
+ }
56
+ Err ( err) => return Err ( err) . context ( "Failed to read site-packages directory" ) ,
57
+ } ;
58
+
45
59
// Index all installed packages by name.
46
- for entry in fs :: read_dir ( venv . site_packages ( ) ) ? {
60
+ for entry in site_packages {
47
61
let entry = entry?;
48
62
if entry. file_type ( ) ?. is_dir ( ) {
49
63
let path = entry. path ( ) ;
Original file line number Diff line number Diff line change @@ -143,8 +143,7 @@ pub(crate) async fn pip_install(
143
143
let _lock = venv. lock ( ) ?;
144
144
145
145
// Determine the set of installed packages.
146
- let site_packages =
147
- SitePackages :: from_executable ( & venv) . context ( "Failed to list installed packages" ) ?;
146
+ let site_packages = SitePackages :: from_executable ( & venv) ?;
148
147
149
148
// If the requirements are already satisfied, we're done. Ideally, the resolver would be fast
150
149
// enough to let us remove this check. But right now, for large environments, it's an order of
Original file line number Diff line number Diff line change @@ -157,8 +157,7 @@ pub(crate) async fn pip_sync(
157
157
) ;
158
158
159
159
// Determine the set of installed packages.
160
- let site_packages =
161
- SitePackages :: from_executable ( & venv) . context ( "Failed to list installed packages" ) ?;
160
+ let site_packages = SitePackages :: from_executable ( & venv) ?;
162
161
163
162
// Resolve any editables.
164
163
let resolved_editables = resolve_editables (
You can’t perform that action at this time.
0 commit comments