Fix poetry version (#445)
This commit is contained in:
		
							parent
							
								
									592a7a7a45
								
							
						
					
					
						commit
						49a521fa06
					
				
							
								
								
									
										6
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							| @ -72,15 +72,15 @@ jobs: | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Install poetry | ||||
|         run: pipx install poetry | ||||
|       - name: Init pyproject.toml | ||||
|         run: mv ./__tests__/data/pyproject.toml . | ||||
|       - name: Setup Python | ||||
|         uses: ./ | ||||
|         with: | ||||
|           python-version: ${{ matrix.python-version }} | ||||
|           cache: 'poetry' | ||||
|       - name: Init pyproject.toml | ||||
|         run: poetry init -n | ||||
|       - name: Install dependencies | ||||
|         run: poetry add flake8 | ||||
|         run: poetry install | ||||
| 
 | ||||
|   python-pip-dependencies-caching-path: | ||||
|     name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }}) | ||||
|  | ||||
| @ -1,6 +1,7 @@ | ||||
| import * as core from '@actions/core'; | ||||
| import * as cache from '@actions/cache'; | ||||
| import * as exec from '@actions/exec'; | ||||
| import * as io from '@actions/io'; | ||||
| import {getCacheDistributor} from '../src/cache-distributions/cache-factory'; | ||||
| import * as utils from './../src/utils'; | ||||
| 
 | ||||
| @ -37,6 +38,9 @@ virtualenvs.path = "{cache-dir}/virtualenvs"  # /Users/patrick/Library/Caches/py | ||||
|   // exec spy
 | ||||
|   let getExecOutputSpy: jest.SpyInstance; | ||||
| 
 | ||||
|   // io spy
 | ||||
|   let whichSpy: jest.SpyInstance; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     process.env['RUNNER_OS'] = process.env['RUNNER_OS'] ?? 'linux'; | ||||
| 
 | ||||
| @ -77,6 +81,8 @@ virtualenvs.path = "{cache-dir}/virtualenvs"  # /Users/patrick/Library/Caches/py | ||||
|       } | ||||
|     ); | ||||
| 
 | ||||
|     whichSpy = jest.spyOn(io, 'which'); | ||||
|     whichSpy.mockImplementation(() => '/path/to/python'); | ||||
|     getLinuxOSReleaseInfoSpy = jest.spyOn(utils, 'getLinuxOSReleaseInfo'); | ||||
|   }); | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										15
									
								
								__tests__/data/pyproject.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								__tests__/data/pyproject.toml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| [tool.poetry] | ||||
| name = "testactiontasks" | ||||
| version = "0.1.0" | ||||
| description = "" | ||||
| authors = ["Your Name <you@example.com>"] | ||||
| 
 | ||||
| [tool.poetry.dependencies] | ||||
| python = "^3.8" | ||||
| flake8 = "^4.0.1" | ||||
| 
 | ||||
| [tool.poetry.dev-dependencies] | ||||
| 
 | ||||
| [build-system] | ||||
| requires = ["poetry-core>=1.0.0"] | ||||
| build-backend = "poetry.core.masonry.api" | ||||
							
								
								
									
										31
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -64573,9 +64573,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| const glob = __importStar(__nccwpck_require__(8090)); | ||||
| const io = __importStar(__nccwpck_require__(7436)); | ||||
| const path = __importStar(__nccwpck_require__(1017)); | ||||
| const exec = __importStar(__nccwpck_require__(1514)); | ||||
| const core = __importStar(__nccwpck_require__(2186)); | ||||
| const cache_distributor_1 = __importDefault(__nccwpck_require__(8953)); | ||||
| const utils_1 = __nccwpck_require__(1314); | ||||
| class PoetryCache extends cache_distributor_1.default { | ||||
|     constructor(pythonVersion, patterns = '**/poetry.lock') { | ||||
|         super('poetry', patterns); | ||||
| @ -64591,6 +64594,17 @@ class PoetryCache extends cache_distributor_1.default { | ||||
|             if (poetryConfig['virtualenvs.in-project'] === true) { | ||||
|                 paths.push(path.join(process.cwd(), '.venv')); | ||||
|             } | ||||
|             const pythonLocation = yield io.which('python'); | ||||
|             if (pythonLocation) { | ||||
|                 core.debug(`pythonLocation is ${pythonLocation}`); | ||||
|                 const { exitCode, stderr } = yield exec.getExecOutput(`poetry env use ${pythonLocation}`, undefined, { ignoreReturnCode: true }); | ||||
|                 if (exitCode) { | ||||
|                     utils_1.logWarning(stderr); | ||||
|                 } | ||||
|             } | ||||
|             else { | ||||
|                 utils_1.logWarning('python binaries were not found in PATH'); | ||||
|             } | ||||
|             return paths; | ||||
|         }); | ||||
|     } | ||||
| @ -65241,7 +65255,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.logWarning = void 0; | ||||
| const core = __importStar(__nccwpck_require__(2186)); | ||||
| const finder = __importStar(__nccwpck_require__(9996)); | ||||
| const finderPyPy = __importStar(__nccwpck_require__(4003)); | ||||
| @ -65277,14 +65290,14 @@ function resolveVersionInput() { | ||||
|         core.info(`Resolved ${versionFile} as ${version}`); | ||||
|         return version; | ||||
|     } | ||||
|     logWarning("Neither 'python-version' nor 'python-version-file' inputs were supplied. Attempting to find '.python-version' file."); | ||||
|     utils_1.logWarning("Neither 'python-version' nor 'python-version-file' inputs were supplied. Attempting to find '.python-version' file."); | ||||
|     versionFile = '.python-version'; | ||||
|     if (fs_1.default.existsSync(versionFile)) { | ||||
|         version = fs_1.default.readFileSync(versionFile, 'utf8'); | ||||
|         core.info(`Resolved ${versionFile} as ${version}`); | ||||
|         return version; | ||||
|     } | ||||
|     logWarning(`${versionFile} doesn't exist.`); | ||||
|     utils_1.logWarning(`${versionFile} doesn't exist.`); | ||||
|     return version; | ||||
| } | ||||
| function run() { | ||||
| @ -65332,11 +65345,6 @@ function run() { | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| function logWarning(message) { | ||||
|     const warningPrefix = '[warning]'; | ||||
|     core.info(`${warningPrefix}${message}`); | ||||
| } | ||||
| exports.logWarning = logWarning; | ||||
| run(); | ||||
| 
 | ||||
| 
 | ||||
| @ -65379,7 +65387,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.getLinuxOSReleaseInfo = exports.isCacheFeatureAvailable = exports.isGhes = exports.validatePythonVersionFormatForPyPy = exports.writeExactPyPyVersionFile = exports.readExactPyPyVersionFile = exports.getPyPyVersionFromPath = exports.isNightlyKeyword = exports.validateVersion = exports.createSymlinkInFolder = exports.WINDOWS_PLATFORMS = exports.WINDOWS_ARCHS = exports.IS_LINUX = exports.IS_WINDOWS = void 0; | ||||
| exports.logWarning = exports.getLinuxOSReleaseInfo = exports.isCacheFeatureAvailable = exports.isGhes = exports.validatePythonVersionFormatForPyPy = exports.writeExactPyPyVersionFile = exports.readExactPyPyVersionFile = exports.getPyPyVersionFromPath = exports.isNightlyKeyword = exports.validateVersion = exports.createSymlinkInFolder = exports.WINDOWS_PLATFORMS = exports.WINDOWS_ARCHS = exports.IS_LINUX = exports.IS_WINDOWS = void 0; | ||||
| const cache = __importStar(__nccwpck_require__(7799)); | ||||
| const core = __importStar(__nccwpck_require__(2186)); | ||||
| const fs_1 = __importDefault(__nccwpck_require__(7147)); | ||||
| @ -65480,6 +65488,11 @@ function getLinuxOSReleaseInfo() { | ||||
|     }); | ||||
| } | ||||
| exports.getLinuxOSReleaseInfo = getLinuxOSReleaseInfo; | ||||
| function logWarning(message) { | ||||
|     const warningPrefix = '[warning]'; | ||||
|     core.info(`${warningPrefix}${message}`); | ||||
| } | ||||
| exports.logWarning = logWarning; | ||||
| 
 | ||||
| 
 | ||||
| /***/ }), | ||||
|  | ||||
| @ -1,9 +1,11 @@ | ||||
| import * as glob from '@actions/glob'; | ||||
| import * as os from 'os'; | ||||
| import * as io from '@actions/io'; | ||||
| import * as path from 'path'; | ||||
| import * as exec from '@actions/exec'; | ||||
| import * as core from '@actions/core'; | ||||
| 
 | ||||
| import CacheDistributor from './cache-distributor'; | ||||
| import {logWarning} from '../utils'; | ||||
| 
 | ||||
| class PoetryCache extends CacheDistributor { | ||||
|   constructor( | ||||
| @ -28,6 +30,26 @@ class PoetryCache extends CacheDistributor { | ||||
|       paths.push(path.join(process.cwd(), '.venv')); | ||||
|     } | ||||
| 
 | ||||
|     const pythonLocation = await io.which('python'); | ||||
| 
 | ||||
|     if (pythonLocation) { | ||||
|       core.debug(`pythonLocation is ${pythonLocation}`); | ||||
|       const { | ||||
|         exitCode, | ||||
|         stderr | ||||
|       } = await exec.getExecOutput( | ||||
|         `poetry env use ${pythonLocation}`, | ||||
|         undefined, | ||||
|         {ignoreReturnCode: true} | ||||
|       ); | ||||
| 
 | ||||
|       if (exitCode) { | ||||
|         logWarning(stderr); | ||||
|       } | ||||
|     } else { | ||||
|       logWarning('python binaries were not found in PATH'); | ||||
|     } | ||||
| 
 | ||||
|     return paths; | ||||
|   } | ||||
| 
 | ||||
|  | ||||
| @ -5,7 +5,12 @@ import * as path from 'path'; | ||||
| import * as os from 'os'; | ||||
| import fs from 'fs'; | ||||
| import {getCacheDistributor} from './cache-distributions/cache-factory'; | ||||
| import {isCacheFeatureAvailable, IS_LINUX, IS_WINDOWS} from './utils'; | ||||
| import { | ||||
|   isCacheFeatureAvailable, | ||||
|   logWarning, | ||||
|   IS_LINUX, | ||||
|   IS_WINDOWS | ||||
| } from './utils'; | ||||
| 
 | ||||
| function isPyPyVersion(versionSpec: string) { | ||||
|   return versionSpec.startsWith('pypy'); | ||||
| @ -115,9 +120,4 @@ async function run() { | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| export function logWarning(message: string): void { | ||||
|   const warningPrefix = '[warning]'; | ||||
|   core.info(`${warningPrefix}${message}`); | ||||
| } | ||||
| 
 | ||||
| run(); | ||||
|  | ||||
| @ -136,3 +136,8 @@ export async function getLinuxOSReleaseInfo() { | ||||
| 
 | ||||
|   return `${osVersion}-${osRelease}`; | ||||
| } | ||||
| 
 | ||||
| export function logWarning(message: string): void { | ||||
|   const warningPrefix = '[warning]'; | ||||
|   core.info(`${warningPrefix}${message}`); | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user