mirror of
				https://git.mirrors.martin98.com/https://github.com/actions/setup-python
				synced 2025-10-31 21:21:06 +08:00 
			
		
		
		
	update pypy3 to point to 3.6 (#164)
This commit is contained in:
		
							parent
							
								
									723e46dad7
								
							
						
					
					
						commit
						3b3f2de1b1
					
				
							
								
								
									
										21
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @ -90,3 +90,24 @@ 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))' | ||||||
|  | 
 | ||||||
|  |   setup-pypy: | ||||||
|  |     name: Setup PyPy ${{ matrix.os }} | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04] | ||||||
|  |     steps: | ||||||
|  |     - name: Checkout | ||||||
|  |       uses: actions/checkout@v2 | ||||||
|  | 
 | ||||||
|  |     - name: setup-python pypy3 | ||||||
|  |       uses: ./ | ||||||
|  |       with: | ||||||
|  |         python-version: 'pypy3' | ||||||
|  | 
 | ||||||
|  |     - name: setup-python pypy2 | ||||||
|  |       uses: ./ | ||||||
|  |       with: | ||||||
|  |         python-version: 'pypy2' | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -6445,7 +6445,7 @@ function installPython(workingDirectory) { | |||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         const options = { |         const options = { | ||||||
|             cwd: workingDirectory, |             cwd: workingDirectory, | ||||||
|             env: Object.assign(Object.assign({}, process.env), IS_LINUX && { 'LD_LIBRARY_PATH': path.join(workingDirectory, 'lib') }), |             env: Object.assign(Object.assign({}, process.env), (IS_LINUX && { LD_LIBRARY_PATH: path.join(workingDirectory, 'lib') })), | ||||||
|             silent: true, |             silent: true, | ||||||
|             listeners: { |             listeners: { | ||||||
|                 stdout: (data) => { |                 stdout: (data) => { | ||||||
| @ -6718,7 +6718,7 @@ function binDir(installDir) { | |||||||
| // For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
 | // For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
 | ||||||
| // We only care about the Python version, so we don't use the PyPy version for the tool cache.
 | // We only care about the Python version, so we don't use the PyPy version for the tool cache.
 | ||||||
| function usePyPy(majorVersion, architecture) { | function usePyPy(majorVersion, architecture) { | ||||||
|     const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion.toString()); |     const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion); | ||||||
|     let installDir = findPyPy(architecture); |     let installDir = findPyPy(architecture); | ||||||
|     if (!installDir && IS_WINDOWS) { |     if (!installDir && IS_WINDOWS) { | ||||||
|         // PyPy only precompiles binaries for x86, but the architecture parameter defaults to x64.
 |         // PyPy only precompiles binaries for x86, but the architecture parameter defaults to x64.
 | ||||||
| @ -6765,7 +6765,9 @@ function useCpythonVersion(version, architecture) { | |||||||
|         } |         } | ||||||
|         core.exportVariable('pythonLocation', installDir); |         core.exportVariable('pythonLocation', installDir); | ||||||
|         if (IS_LINUX) { |         if (IS_LINUX) { | ||||||
|             const libPath = (process.env.LD_LIBRARY_PATH) ? `:${process.env.LD_LIBRARY_PATH}` : ''; |             const libPath = process.env.LD_LIBRARY_PATH | ||||||
|  |                 ? `:${process.env.LD_LIBRARY_PATH}` | ||||||
|  |                 : ''; | ||||||
|             const pyLibPath = path.join(installDir, 'lib'); |             const pyLibPath = path.join(installDir, 'lib'); | ||||||
|             if (!libPath.split(':').includes(pyLibPath)) { |             if (!libPath.split(':').includes(pyLibPath)) { | ||||||
|                 core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath); |                 core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath); | ||||||
| @ -6819,9 +6821,10 @@ function findPythonVersion(version, architecture) { | |||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         switch (version.toUpperCase()) { |         switch (version.toUpperCase()) { | ||||||
|             case 'PYPY2': |             case 'PYPY2': | ||||||
|                 return usePyPy(2, architecture); |                 return usePyPy('2', architecture); | ||||||
|             case 'PYPY3': |             case 'PYPY3': | ||||||
|                 return usePyPy(3, architecture); |                 // keep pypy3 pointing to 3.6 for backward compatibility
 | ||||||
|  |                 return usePyPy('3.6', architecture); | ||||||
|             default: |             default: | ||||||
|                 return yield useCpythonVersion(version, architecture); |                 return yield useCpythonVersion(version, architecture); | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -37,8 +37,11 @@ function binDir(installDir: string): string { | |||||||
| // A particular version of PyPy may contain one or more versions of the Python interpreter.
 | // A particular version of PyPy may contain one or more versions of the Python interpreter.
 | ||||||
| // For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
 | // For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
 | ||||||
| // We only care about the Python version, so we don't use the PyPy version for the tool cache.
 | // We only care about the Python version, so we don't use the PyPy version for the tool cache.
 | ||||||
| function usePyPy(majorVersion: 2 | 3, architecture: string): InstalledVersion { | function usePyPy( | ||||||
|   const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion.toString()); |   majorVersion: '2' | '3.6', | ||||||
|  |   architecture: string | ||||||
|  | ): InstalledVersion { | ||||||
|  |   const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion); | ||||||
|   let installDir: string | null = findPyPy(architecture); |   let installDir: string | null = findPyPy(architecture); | ||||||
| 
 | 
 | ||||||
|   if (!installDir && IS_WINDOWS) { |   if (!installDir && IS_WINDOWS) { | ||||||
| @ -188,9 +191,10 @@ export async function findPythonVersion( | |||||||
| ): Promise<InstalledVersion> { | ): Promise<InstalledVersion> { | ||||||
|   switch (version.toUpperCase()) { |   switch (version.toUpperCase()) { | ||||||
|     case 'PYPY2': |     case 'PYPY2': | ||||||
|       return usePyPy(2, architecture); |       return usePyPy('2', architecture); | ||||||
|     case 'PYPY3': |     case 'PYPY3': | ||||||
|       return usePyPy(3, architecture); |       // keep pypy3 pointing to 3.6 for backward compatibility
 | ||||||
|  |       return usePyPy('3.6', architecture); | ||||||
|     default: |     default: | ||||||
|       return await useCpythonVersion(version, architecture); |       return await useCpythonVersion(version, architecture); | ||||||
|   } |   } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Maxim Lobanov
						Maxim Lobanov