mirror of
				https://git.mirrors.martin98.com/https://github.com/actions/setup-python
				synced 2025-10-31 13:41:06 +08:00 
			
		
		
		
	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 | ||||
|         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* () { | ||||
|         const version = semver.coerce(pythonVersion); | ||||
|         const pythonBinaryPostfix = semver.major(version); | ||||
|         const pythonMinor = semver.minor(version); | ||||
|         const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3'; | ||||
|         const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`; | ||||
|         let binaryExtension = utils_1.IS_WINDOWS ? '.exe' : ''; | ||||
|         core.info('Creating symlinks...'); | ||||
|         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}`, `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, true); | ||||
|     }); | ||||
| } | ||||
| function installPip(pythonLocation) { | ||||
|  | ||||
| @ -98,7 +98,9 @@ async function createPyPySymlink( | ||||
| ) { | ||||
|   const version = semver.coerce(pythonVersion)!; | ||||
|   const pythonBinaryPostfix = semver.major(version); | ||||
|   const pythonMinor = semver.minor(version); | ||||
|   const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3'; | ||||
|   const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`; | ||||
|   let binaryExtension = IS_WINDOWS ? '.exe' : ''; | ||||
| 
 | ||||
|   core.info('Creating symlinks...'); | ||||
| @ -115,6 +117,13 @@ async function createPyPySymlink( | ||||
|     `python${binaryExtension}`, | ||||
|     true | ||||
|   ); | ||||
| 
 | ||||
|   createSymlinkInFolder( | ||||
|     pypyBinaryPath, | ||||
|     `pypy${pypyBinaryPostfix}${binaryExtension}`, | ||||
|     `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, | ||||
|     true | ||||
|   ); | ||||
| } | ||||
| 
 | ||||
| async function installPip(pythonLocation: string) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Matthieu Darbois
						Matthieu Darbois