mirror of
				https://gitea.com/actions/setup-python.git
				synced 2025-11-04 05:38:56 +08: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]
 | 
					        operating-system: [ubuntu-latest, windows-latest]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - name: Checkout
 | 
					    - name: Checkout
 | 
				
			||||||
      uses: actions/checkout@master
 | 
					      uses: actions/checkout@v2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Set Node.js 10.x
 | 
					    - name: Set Node.js 12.x
 | 
				
			||||||
      uses: actions/setup-node@master
 | 
					      uses: actions/setup-node@v1
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        node-version: 10.x
 | 
					        node-version: 12.x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: npm install
 | 
					    - name: npm install
 | 
				
			||||||
      run: npm install
 | 
					      run: npm install
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,21 +5,13 @@ import path = require('path');
 | 
				
			|||||||
const toolDir = path.join(
 | 
					const toolDir = path.join(
 | 
				
			||||||
  __dirname,
 | 
					  __dirname,
 | 
				
			||||||
  'runner',
 | 
					  'runner',
 | 
				
			||||||
  path.join(
 | 
					  path.join(Math.random().toString(36).substring(7)),
 | 
				
			||||||
    Math.random()
 | 
					 | 
				
			||||||
      .toString(36)
 | 
					 | 
				
			||||||
      .substring(7)
 | 
					 | 
				
			||||||
  ),
 | 
					 | 
				
			||||||
  'tools'
 | 
					  'tools'
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
const tempDir = path.join(
 | 
					const tempDir = path.join(
 | 
				
			||||||
  __dirname,
 | 
					  __dirname,
 | 
				
			||||||
  'runner',
 | 
					  'runner',
 | 
				
			||||||
  path.join(
 | 
					  path.join(Math.random().toString(36).substring(7)),
 | 
				
			||||||
    Math.random()
 | 
					 | 
				
			||||||
      .toString(36)
 | 
					 | 
				
			||||||
      .substring(7)
 | 
					 | 
				
			||||||
  ),
 | 
					 | 
				
			||||||
  'temp'
 | 
					  '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",
 | 
					  "author": "GitHub",
 | 
				
			||||||
  "license": "MIT",
 | 
					  "license": "MIT",
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@actions/core": "^1.2.3",
 | 
					    "@actions/core": "^1.10.0",
 | 
				
			||||||
    "semver": "^6.1.1"
 | 
					    "semver": "^7.1.3"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@actions/io": "^1.0.2",
 | 
					    "@actions/io": "^1.0.2",
 | 
				
			||||||
    "@actions/tool-cache": "^1.3.2",
 | 
					    "@actions/tool-cache": "^1.3.3",
 | 
				
			||||||
    "@types/jest": "^24.9.1",
 | 
					    "@types/jest": "^25.1.4",
 | 
				
			||||||
    "@types/node": "^12.12.29",
 | 
					    "@types/node": "^12.12.31",
 | 
				
			||||||
    "@types/semver": "^6.2.1",
 | 
					    "@types/semver": "^7.1.0",
 | 
				
			||||||
    "@zeit/ncc": "^0.20.5",
 | 
					    "@zeit/ncc": "^0.22.0",
 | 
				
			||||||
    "husky": "^3.1.0",
 | 
					    "husky": "^4.2.3",
 | 
				
			||||||
    "jest": "^24.9.0",
 | 
					    "jest": "^25.1.0",
 | 
				
			||||||
    "jest-circus": "^24.9.0",
 | 
					    "jest-circus": "^25.1.0",
 | 
				
			||||||
    "prettier": "^1.19.1",
 | 
					    "prettier": "^2.0.2",
 | 
				
			||||||
    "ts-jest": "^24.3.0",
 | 
					    "ts-jest": "^25.2.1",
 | 
				
			||||||
    "typescript": "^3.8.3"
 | 
					    "typescript": "^3.8.3"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "husky": {
 | 
					  "husky": {
 | 
				
			||||||
    "skipCI": true,
 | 
					    "skipCI": true,
 | 
				
			||||||
    "hooks": {
 | 
					    "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.
 | 
					// 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) {
 | 
				
			||||||
@@ -77,6 +80,10 @@ function usePyPy(majorVersion: 2 | 3, architecture: string): InstalledVersion {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  core.addPath(installDir);
 | 
					  core.addPath(installDir);
 | 
				
			||||||
  core.addPath(_binDir);
 | 
					  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();
 | 
					  const impl = 'pypy' + majorVersion.toString();
 | 
				
			||||||
  core.setOutput('python-version', impl);
 | 
					  core.setOutput('python-version', impl);
 | 
				
			||||||
@@ -186,9 +193,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);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user