From d08ef5821fcfd9cb7c4dc3abce5f0b2593ef1dfa Mon Sep 17 00:00:00 2001 From: KozakLordOfMatrix Date: Thu, 11 Jun 2026 16:05:22 +0300 Subject: [PATCH] fix: improve robustness of CI scripts --- find-version.mjs | 3 +++ generate-html.mjs | 25 +++++++++++++++++++------ package-lock.json | 2 +- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/find-version.mjs b/find-version.mjs index 48f7a57789..b79b2e4aa8 100644 --- a/find-version.mjs +++ b/find-version.mjs @@ -40,6 +40,9 @@ const findVersionForChannel = async (channel = 'Stable') => { console.log(`Checking the ${channel} channel…`); const apiEndpoint = `https://chromiumdash.appspot.com/fetch_releases?channel=${channel}&num=1&platform=Win32,Windows,Mac,Linux`; const response = await fetch(apiEndpoint); + if (!response.ok) { + throw new Error(`Failed to fetch releases: ${response.status} ${response.statusText}`); + } const data = await response.json(); let minVersion = `99999.99999.99999.99999`; diff --git a/generate-html.mjs b/generate-html.mjs index 10c694fb06..426bec0115 100644 --- a/generate-html.mjs +++ b/generate-html.mjs @@ -73,7 +73,7 @@ const renderDownloads = (downloads, version, forceOk = false) => { `; }; -const render = (data) => { +const render = (data, lastKnownGoodVersions) => { const summary = []; const main = []; for (const [channel, channelData] of Object.entries(data.channels)) { @@ -150,15 +150,28 @@ const render = (data) => { `; }; -const data = await readJsonFile('./data/dashboard.json'); -const lastKnownGoodVersions = await readJsonFile( - 'data/last-known-good-versions-with-downloads.json', -); +let data; +try { + data = await readJsonFile('./data/dashboard.json'); +} catch (error) { + console.error('Error reading ./data/dashboard.json:', error.message); + process.exit(1); +} + +let lastKnownGoodVersions; +try { + lastKnownGoodVersions = await readJsonFile( + 'data/last-known-good-versions-with-downloads.json', + ); +} catch (error) { + console.error('Error reading data/last-known-good-versions-with-downloads.json:', error.message); + process.exit(1); +} const htmlTemplate = await fs.readFile('./_tpl/template.html', 'utf8'); const html = htmlTemplate .toString() - .replace('%%%DATA%%%', render(data)) + .replace('%%%DATA%%%', render(data, lastKnownGoodVersions)) .replace('%%%TIMESTAMP%%%', data.timestamp); const minifiedHtml = await minifyHtml(html); await fs.writeFile('./dist/index.html', minifiedHtml); diff --git a/package-lock.json b/package-lock.json index 649ba8c727..d8e31cc8ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "chrome-for-testing", + "name": "app", "lockfileVersion": 2, "requires": true, "packages": {