mirror of
https://github.com/facebook/react-native.git
synced 2026-03-31 09:02:15 +00:00
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/49788 Release of 0.78 was successful but it failed to verify the package of NPM because of some error in the JS files. Preparing for 0.79, I discovered some other issues in the NPM checking scripts. This change should fix them. ## Changelog: [Internal] - Fix publishing scripts Reviewed By: fabriziocucci Differential Revision: D70489717 fbshipit-source-id: 02a37d9a86fe108c7f7d2d634b8c0727dabb153d
64 lines
1.6 KiB
JavaScript
64 lines
1.6 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
*/
|
|
|
|
const {log, getNpmPackageInfo, sleep} = require('./utils');
|
|
|
|
const SLEEP_S = 10;
|
|
const MAX_RETRIES = 3 * 6; // 18 attempts. Waiting between attempt: 10 s. Total time: 3 mins.
|
|
|
|
async function verifyPublishedPackage(
|
|
packageName,
|
|
version,
|
|
tag = null,
|
|
retries = MAX_RETRIES,
|
|
) {
|
|
log(`🔍 Is ${packageName}@${version} on npm?`);
|
|
|
|
let count = retries;
|
|
while (count-- > 0) {
|
|
try {
|
|
const json = await getNpmPackageInfo(packageName, tag ? tag : version);
|
|
log(`🎉 Found ${packageName}@${version} on npm`);
|
|
if (!tag) {
|
|
return;
|
|
}
|
|
|
|
// check for next tag
|
|
if (tag === 'next' && json.version === version) {
|
|
log(`🎉 ${packageName}@next → ${version} on npm`);
|
|
return;
|
|
}
|
|
|
|
// Check for latest tag
|
|
if (tag === 'latest' && json.version === version) {
|
|
log(`🎉 ${packageName}@latest → ${version} on npm`);
|
|
return;
|
|
}
|
|
|
|
log(
|
|
`🐌 ${packageName}@${tag} → ${json.version} on npm and not ${version} as expected, retrying...`,
|
|
);
|
|
} catch (e) {
|
|
log(`Nope, fetch failed: ${e.message}`);
|
|
}
|
|
await sleep(SLEEP_S);
|
|
}
|
|
|
|
let msg = `🚨 Timed out when trying to verify ${packageName}@${version} on npm`;
|
|
if (tag) {
|
|
msg += ` and ${tag} tag points to this version.`;
|
|
}
|
|
log(msg);
|
|
process.exit(1);
|
|
}
|
|
|
|
module.exports = {
|
|
verifyPublishedPackage,
|
|
};
|