refactor: make it easier to extend trimCache (#10202)

This commit is contained in:
Alex Rudenko 2023-05-17 16:10:51 +02:00 committed by GitHub
parent 1ad32ec994
commit 9cba24a961
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -301,44 +301,66 @@ export class PuppeteerNode extends Puppeteer {
const product = this.configuration.defaultProduct!; const product = this.configuration.defaultProduct!;
const chromeBuildId = await resolveBuildId( const puppeteerBrowsers: Array<{
SupportedBrowser.CHROME, product: Product;
browser: SupportedBrowser;
currentBuildId: string;
}> = [
{
product: 'chrome',
browser: SupportedBrowser.CHROME,
currentBuildId: '',
},
{
product: 'firefox',
browser: SupportedBrowser.FIREFOX,
currentBuildId: '',
},
];
// Resolve current buildIds.
for (const item of puppeteerBrowsers) {
item.currentBuildId = await resolveBuildId(
item.browser,
platform, platform,
(product === 'chrome' ? this.configuration.browserRevision : null) || (product === item.product
PUPPETEER_REVISIONS['chrome'] ? this.configuration.browserRevision
: null) || PUPPETEER_REVISIONS[item.product]
);
}
const currentBrowserBuilds = new Set(
puppeteerBrowsers.map(browser => {
return `${browser.browser}_${browser.currentBuildId}`;
})
); );
const firefoxBuildId = await resolveBuildId( const currentBrowsers = new Set(
SupportedBrowser.FIREFOX, puppeteerBrowsers.map(browser => {
platform, return browser.browser;
(product === 'firefox' ? this.configuration.browserRevision : null) || })
PUPPETEER_REVISIONS['firefox']
); );
for (const browser of installedBrowsers) { for (const installedBrowser of installedBrowsers) {
// Don't uninstall browsers that are not managed by Puppeteer yet.
if (!currentBrowsers.has(installedBrowser.browser)) {
continue;
}
// Keep the browser build used by the current Puppeteer installation.
if ( if (
browser.browser === SupportedBrowser.CHROME && currentBrowserBuilds.has(
browser.buildId !== chromeBuildId `${installedBrowser.browser}_${installedBrowser.buildId}`
)
) { ) {
continue;
}
await uninstall({ await uninstall({
browser: SupportedBrowser.CHROME, browser: SupportedBrowser.CHROME,
platform, platform,
cacheDir, cacheDir,
buildId: chromeBuildId, buildId: installedBrowser.buildId,
});
}
if (
browser.browser === SupportedBrowser.FIREFOX &&
browser.buildId !== firefoxBuildId
) {
await uninstall({
browser: SupportedBrowser.FIREFOX,
platform,
cacheDir,
buildId: firefoxBuildId,
}); });
} }
} }
} }
}