You've already forked setup-python
							
							
				mirror of
				https://github.com/actions/setup-python.git
				synced 2025-10-31 15:16:23 +07:00 
			
		
		
		
	Compare commits
	
		
			13 Commits
		
	
	
		
			v1.2.0
			...
			releases/v
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0cf603f701 | |||
| 0f07f7f756 | |||
| 9f3aa2c73d | |||
| 152ba7c4dd | |||
| da8703fb23 | |||
| accf675719 | |||
| 614aa4aa1e | |||
| 4ff1108c39 | |||
| a93e9d979a | |||
| b67fc24ab8 | |||
| 53d19faf05 | |||
| 948e5343c7 | |||
| bdd6409dc1 | 
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| * text=auto eol=lf | ||||
							
								
								
									
										28
									
								
								.github/workflows/release-new-action-version.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								.github/workflows/release-new-action-version.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| name: Release new action version | ||||
|  | ||||
| on: | ||||
|   release: | ||||
|     types: [released] | ||||
|   workflow_dispatch: | ||||
|     inputs: | ||||
|       TAG_NAME: | ||||
|         description: 'Tag name that the major tag will point to' | ||||
|         required: true | ||||
|  | ||||
| env: | ||||
|   TAG_NAME: ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }} | ||||
| permissions: | ||||
|   contents: write | ||||
|  | ||||
| jobs: | ||||
|   update_tag: | ||||
|     name: Update the major tag to include the ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }} changes | ||||
|     environment: | ||||
|       name: releaseNewActionVersion | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Update the ${{ env.TAG_NAME }} tag | ||||
|         uses: actions/publish-action@v0.2.2 | ||||
|         with: | ||||
|           source-tag: ${{ env.TAG_NAME }} | ||||
|           slack-webhook: ${{ secrets.SLACK_WEBHOOK }} | ||||
							
								
								
									
										77
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | ||||
| name: Validate 'setup-python' | ||||
| on:  | ||||
|   pull_request: | ||||
|     paths-ignore: | ||||
|       - '**.md' | ||||
|  | ||||
| jobs: | ||||
|   default-version: | ||||
|     name: Setup default version | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-latest, windows-latest, ubuntu-18.04, ubuntu-20.04] | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|  | ||||
|     - name: setup default python  | ||||
|       uses: ./ | ||||
|  | ||||
|     - name: Validate version | ||||
|       run: python --version | ||||
|  | ||||
|     - name: Run simple python code | ||||
|       run: python -c 'import math; print(math.factorial(5))' | ||||
|  | ||||
|   setup-python: | ||||
|     name: Setup ${{ matrix.python }} ${{ matrix.os }} | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-latest, windows-latest, ubuntu-18.04, ubuntu-20.04] | ||||
|         python: [3.5, 3.6, 3.7, 3.8, 3.9] | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|  | ||||
|     - name: setup-python ${{ matrix.python }} | ||||
|       uses: ./ | ||||
|       with: | ||||
|         python-version: ${{ matrix.python }} | ||||
|  | ||||
|     - name: Validate version | ||||
|       run: | | ||||
|         $pythonVersion = (python --version) | ||||
|         if ("$pythonVersion" -notlike "Python ${{ matrix.python }}.*"){ | ||||
|           Write-Host "The current version is $pythonVersion; expected version is ${{ matrix.python }}" | ||||
|           exit 1 | ||||
|         } | ||||
|         $pythonVersion | ||||
|       shell: pwsh | ||||
|  | ||||
|     - name: Run simple code | ||||
|       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-18.04, ubuntu-20.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' | ||||
							
								
								
									
										8
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							| @ -9,12 +9,12 @@ jobs: | ||||
|         operating-system: [ubuntu-latest, windows-latest] | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@master | ||||
|       uses: actions/checkout@v2 | ||||
|  | ||||
|     - name: Set Node.js 10.x | ||||
|       uses: actions/setup-node@master | ||||
|     - name: Set Node.js 12.x | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: 10.x | ||||
|         node-version: 12.x | ||||
|  | ||||
|     - name: npm install | ||||
|       run: npm install | ||||
|  | ||||
| @ -5,21 +5,13 @@ import path = require('path'); | ||||
| const toolDir = path.join( | ||||
|   __dirname, | ||||
|   'runner', | ||||
|   path.join( | ||||
|     Math.random() | ||||
|       .toString(36) | ||||
|       .substring(7) | ||||
|   ), | ||||
|   path.join(Math.random().toString(36).substring(7)), | ||||
|   'tools' | ||||
| ); | ||||
| const tempDir = path.join( | ||||
|   __dirname, | ||||
|   'runner', | ||||
|   path.join( | ||||
|     Math.random() | ||||
|       .toString(36) | ||||
|       .substring(7) | ||||
|   ), | ||||
|   path.join(Math.random().toString(36).substring(7)), | ||||
|   'temp' | ||||
| ); | ||||
|  | ||||
|  | ||||
							
								
								
									
										9576
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9576
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3509
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3509
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										26
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								package.json
									
									
									
									
									
								
							| @ -23,27 +23,27 @@ | ||||
|   "author": "GitHub", | ||||
|   "license": "MIT", | ||||
|   "dependencies": { | ||||
|     "@actions/core": "^1.2.3", | ||||
|     "semver": "^6.1.1" | ||||
|     "@actions/core": "^1.10.0", | ||||
|     "semver": "^7.1.3" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@actions/io": "^1.0.2", | ||||
|     "@actions/tool-cache": "^1.3.2", | ||||
|     "@types/jest": "^24.9.1", | ||||
|     "@types/node": "^12.12.29", | ||||
|     "@types/semver": "^6.2.1", | ||||
|     "@zeit/ncc": "^0.20.5", | ||||
|     "husky": "^3.1.0", | ||||
|     "jest": "^24.9.0", | ||||
|     "jest-circus": "^24.9.0", | ||||
|     "prettier": "^1.19.1", | ||||
|     "ts-jest": "^24.3.0", | ||||
|     "@actions/tool-cache": "^1.3.3", | ||||
|     "@types/jest": "^25.1.4", | ||||
|     "@types/node": "^12.12.31", | ||||
|     "@types/semver": "^7.1.0", | ||||
|     "@zeit/ncc": "^0.22.0", | ||||
|     "husky": "^4.2.3", | ||||
|     "jest": "^25.1.0", | ||||
|     "jest-circus": "^25.1.0", | ||||
|     "prettier": "^2.0.2", | ||||
|     "ts-jest": "^25.2.1", | ||||
|     "typescript": "^3.8.3" | ||||
|   }, | ||||
|   "husky": { | ||||
|     "skipCI": true, | ||||
|     "hooks": { | ||||
|       "pre-commit": "npm run build && npm run format" | ||||
|       "pre-commit": "npm run build && npm run format-check" | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -51,8 +51,11 @@ function binDir(installDir: string): string { | ||||
| // 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. | ||||
| // 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 { | ||||
|   const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion.toString()); | ||||
| function usePyPy( | ||||
|   majorVersion: '2' | '3.6', | ||||
|   architecture: string | ||||
| ): InstalledVersion { | ||||
|   const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion); | ||||
|   let installDir: string | null = findPyPy(architecture); | ||||
|  | ||||
|   if (!installDir && IS_WINDOWS) { | ||||
| @ -77,6 +80,10 @@ function usePyPy(majorVersion: 2 | 3, architecture: string): InstalledVersion { | ||||
|  | ||||
|   core.addPath(installDir); | ||||
|   core.addPath(_binDir); | ||||
|   // Starting from PyPy 7.3.1, the folder that is used for pip and anything that pip installs should be "Scripts" on Windows. | ||||
|   if (IS_WINDOWS) { | ||||
|     core.addPath(path.join(installDir, 'Scripts')); | ||||
|   } | ||||
|  | ||||
|   const impl = 'pypy' + majorVersion.toString(); | ||||
|   core.setOutput('python-version', impl); | ||||
| @ -186,9 +193,10 @@ export async function findPythonVersion( | ||||
| ): Promise<InstalledVersion> { | ||||
|   switch (version.toUpperCase()) { | ||||
|     case 'PYPY2': | ||||
|       return usePyPy(2, architecture); | ||||
|       return usePyPy('2', architecture); | ||||
|     case 'PYPY3': | ||||
|       return usePyPy(3, architecture); | ||||
|       // keep pypy3 pointing to 3.6 for backward compatibility | ||||
|       return usePyPy('3.6', architecture); | ||||
|     default: | ||||
|       return await useCpythonVersion(version, architecture); | ||||
|   } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	