Create missing pypyX.Y symlinks (#347)
				
					
				
			`pypyX.Y.exe` executables are missing from PyPy archives on Windows before v7.3.9 (X.Y < 3.9) `pypy2.7` symlinks are also missing from macOS/Linux PyPy archives before v7.3.9 relates to #346
This commit is contained in:
		
							parent
							
								
									c36dc43e7b
								
							
						
					
					
						commit
						1ce308808a
					
				
							
								
								
									
										14
									
								
								.github/workflows/test-pypy.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/test-pypy.yml
									
									
									
									
										vendored
									
									
								
							| @ -44,3 +44,17 @@ jobs: | |||||||
|    |    | ||||||
|       - name: Run simple code |       - name: Run simple code | ||||||
|         run: python -c 'import math; print(math.factorial(5))' |         run: python -c 'import math; print(math.factorial(5))' | ||||||
|  | 
 | ||||||
|  |       - name: Assert PyPy is running | ||||||
|  |         run: | | ||||||
|  |           import platform | ||||||
|  |           assert platform.python_implementation().lower() == "pypy" | ||||||
|  |         shell: python | ||||||
|  | 
 | ||||||
|  |       - name: Assert expected binaries (or symlinks) are present | ||||||
|  |         run: | | ||||||
|  |           EXECUTABLE=${{ matrix.pypy }} | ||||||
|  |           EXECUTABLE=${EXECUTABLE/-/}  # remove the first '-' in "pypy-X.Y" -> "pypyX.Y" to match executable name | ||||||
|  |           EXECUTABLE=${EXECUTABLE%%-*}  # remove any -* suffixe | ||||||
|  |           ${EXECUTABLE} --version | ||||||
|  |         shell: bash | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -10283,11 +10283,14 @@ function createPyPySymlink(pypyBinaryPath, pythonVersion) { | |||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         const version = semver.coerce(pythonVersion); |         const version = semver.coerce(pythonVersion); | ||||||
|         const pythonBinaryPostfix = semver.major(version); |         const pythonBinaryPostfix = semver.major(version); | ||||||
|  |         const pythonMinor = semver.minor(version); | ||||||
|         const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3'; |         const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3'; | ||||||
|  |         const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`; | ||||||
|         let binaryExtension = utils_1.IS_WINDOWS ? '.exe' : ''; |         let binaryExtension = utils_1.IS_WINDOWS ? '.exe' : ''; | ||||||
|         core.info('Creating symlinks...'); |         core.info('Creating symlinks...'); | ||||||
|         utils_1.createSymlinkInFolder(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${pythonBinaryPostfix}${binaryExtension}`, true); |         utils_1.createSymlinkInFolder(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${pythonBinaryPostfix}${binaryExtension}`, true); | ||||||
|         utils_1.createSymlinkInFolder(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${binaryExtension}`, true); |         utils_1.createSymlinkInFolder(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${binaryExtension}`, true); | ||||||
|  |         utils_1.createSymlinkInFolder(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, true); | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| function installPip(pythonLocation) { | function installPip(pythonLocation) { | ||||||
|  | |||||||
| @ -98,7 +98,9 @@ async function createPyPySymlink( | |||||||
| ) { | ) { | ||||||
|   const version = semver.coerce(pythonVersion)!; |   const version = semver.coerce(pythonVersion)!; | ||||||
|   const pythonBinaryPostfix = semver.major(version); |   const pythonBinaryPostfix = semver.major(version); | ||||||
|  |   const pythonMinor = semver.minor(version); | ||||||
|   const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3'; |   const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3'; | ||||||
|  |   const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`; | ||||||
|   let binaryExtension = IS_WINDOWS ? '.exe' : ''; |   let binaryExtension = IS_WINDOWS ? '.exe' : ''; | ||||||
| 
 | 
 | ||||||
|   core.info('Creating symlinks...'); |   core.info('Creating symlinks...'); | ||||||
| @ -115,6 +117,13 @@ async function createPyPySymlink( | |||||||
|     `python${binaryExtension}`, |     `python${binaryExtension}`, | ||||||
|     true |     true | ||||||
|   ); |   ); | ||||||
|  | 
 | ||||||
|  |   createSymlinkInFolder( | ||||||
|  |     pypyBinaryPath, | ||||||
|  |     `pypy${pypyBinaryPostfix}${binaryExtension}`, | ||||||
|  |     `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, | ||||||
|  |     true | ||||||
|  |   ); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async function installPip(pythonLocation: string) { | async function installPip(pythonLocation: string) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user