3
0
Fork 0
mirror of https://gitea.com/actions/setup-python.git synced 2024-11-23 02:29:35 +01:00

Include Python version in pip cache key (#303)

This commit is contained in:
Hugo van Kemenade 2022-01-31 12:42:08 +02:00 committed by GitHub
parent 156361d073
commit ba33a692f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 13 deletions

View file

@ -92,13 +92,9 @@ describe('restore-cache', () => {
dependencyFile dependencyFile
); );
await cacheDistributor.restoreCache(); await cacheDistributor.restoreCache();
let pythonKey = '';
if (packageManager === 'pipenv') {
pythonKey = `python-${pythonVersion}-`;
}
expect(infoSpy).toHaveBeenCalledWith( expect(infoSpy).toHaveBeenCalledWith(
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${pythonKey}${packageManager}-${fileHash}` `Cache restored from key: setup-python-${process.env['RUNNER_OS']}-python-${pythonVersion}-${packageManager}-${fileHash}`
); );
} }
); );

9
dist/setup/index.js vendored
View file

@ -34467,8 +34467,9 @@ const path = __importStar(__webpack_require__(622));
const os_1 = __importDefault(__webpack_require__(87)); const os_1 = __importDefault(__webpack_require__(87));
const cache_distributor_1 = __importDefault(__webpack_require__(435)); const cache_distributor_1 = __importDefault(__webpack_require__(435));
class PipCache extends cache_distributor_1.default { class PipCache extends cache_distributor_1.default {
constructor(cacheDependencyPath = '**/requirements.txt') { constructor(pythonVersion, cacheDependencyPath = '**/requirements.txt') {
super('pip', cacheDependencyPath); super('pip', cacheDependencyPath);
this.pythonVersion = pythonVersion;
} }
getCacheGlobalDirectories() { getCacheGlobalDirectories() {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
@ -34487,8 +34488,8 @@ class PipCache extends cache_distributor_1.default {
computeKeys() { computeKeys() {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const hash = yield glob.hashFiles(this.cacheDependencyPath); const hash = yield glob.hashFiles(this.cacheDependencyPath);
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${this.packageManager}-${hash}`; const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
const restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${this.packageManager}`; const restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}`;
return { return {
primaryKey, primaryKey,
restoreKey: [restoreKey] restoreKey: [restoreKey]
@ -43888,7 +43889,7 @@ var PackageManagers;
function getCacheDistributor(packageManager, pythonVersion, cacheDependencyPath) { function getCacheDistributor(packageManager, pythonVersion, cacheDependencyPath) {
switch (packageManager) { switch (packageManager) {
case PackageManagers.Pip: case PackageManagers.Pip:
return new pip_cache_1.default(cacheDependencyPath); return new pip_cache_1.default(pythonVersion, cacheDependencyPath);
case PackageManagers.Pipenv: case PackageManagers.Pipenv:
return new pipenv_cache_1.default(pythonVersion, cacheDependencyPath); return new pipenv_cache_1.default(pythonVersion, cacheDependencyPath);
default: default:

View file

@ -13,7 +13,7 @@ export function getCacheDistributor(
) { ) {
switch (packageManager) { switch (packageManager) {
case PackageManagers.Pip: case PackageManagers.Pip:
return new PipCache(cacheDependencyPath); return new PipCache(pythonVersion, cacheDependencyPath);
case PackageManagers.Pipenv: case PackageManagers.Pipenv:
return new PipenvCache(pythonVersion, cacheDependencyPath); return new PipenvCache(pythonVersion, cacheDependencyPath);
default: default:

View file

@ -8,7 +8,10 @@ import os from 'os';
import CacheDistributor from './cache-distributor'; import CacheDistributor from './cache-distributor';
class PipCache extends CacheDistributor { class PipCache extends CacheDistributor {
constructor(cacheDependencyPath: string = '**/requirements.txt') { constructor(
private pythonVersion: string,
cacheDependencyPath: string = '**/requirements.txt'
) {
super('pip', cacheDependencyPath); super('pip', cacheDependencyPath);
} }
@ -36,8 +39,8 @@ class PipCache extends CacheDistributor {
protected async computeKeys() { protected async computeKeys() {
const hash = await glob.hashFiles(this.cacheDependencyPath); const hash = await glob.hashFiles(this.cacheDependencyPath);
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${this.packageManager}-${hash}`; const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
const restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${this.packageManager}`; const restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}`;
return { return {
primaryKey, primaryKey,