mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Merge pull request #36573 from hoxyq/hoxyq/cherry-pick-ci-scripts-changes-to-0.72-stable
RN [refactor]: bump and realign package versions by running a single …
This commit is contained in:
+1
-2
@@ -40,8 +40,7 @@
|
||||
"test-ios": "./scripts/objc-test.sh test",
|
||||
"test-typescript": "dtslint packages/react-native/types",
|
||||
"test-typescript-offline": "dtslint --localTs node_modules/typescript/lib packages/react-native/types",
|
||||
"bump-all-updated-packages": "node ./scripts/monorepo/bump-all-updated-packages",
|
||||
"align-package-versions": "node ./scripts/monorepo/align-package-versions.js"
|
||||
"bump-all-updated-packages": "node ./scripts/monorepo/bump-all-updated-packages"
|
||||
},
|
||||
"workspaces": [
|
||||
"packages/*"
|
||||
|
||||
@@ -7,11 +7,9 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
const {spawnSync} = require('child_process');
|
||||
const {writeFileSync, readFileSync} = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const checkForGitChanges = require('./check-for-git-changes');
|
||||
const forEachPackage = require('./for-each-package');
|
||||
|
||||
const ROOT_LOCATION = path.join(__dirname, '..', '..');
|
||||
@@ -95,14 +93,6 @@ const checkIfShouldUpdateDependencyPackageVersion = (
|
||||
};
|
||||
|
||||
const alignPackageVersions = () => {
|
||||
if (checkForGitChanges()) {
|
||||
console.log(
|
||||
'\u274c Found uncommitted changes. Please commit or stash them before running this script',
|
||||
);
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
forEachPackage((_, __, packageManifest) => {
|
||||
checkIfShouldUpdateDependencyPackageVersion(
|
||||
ROOT_LOCATION,
|
||||
@@ -126,21 +116,6 @@ const alignPackageVersions = () => {
|
||||
{includeReactNative: true},
|
||||
);
|
||||
});
|
||||
|
||||
if (!checkForGitChanges()) {
|
||||
console.log(
|
||||
'\u2705 There were no changes. Every consumer package uses the actual version of dependency package.',
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Running yarn to update lock file...');
|
||||
spawnSync('yarn', ['install'], {
|
||||
cwd: ROOT_LOCATION,
|
||||
shell: true,
|
||||
stdio: 'inherit',
|
||||
encoding: 'utf-8',
|
||||
});
|
||||
};
|
||||
|
||||
alignPackageVersions();
|
||||
module.exports = alignPackageVersions;
|
||||
|
||||
@@ -14,6 +14,7 @@ const path = require('path');
|
||||
const {echo, exec, exit} = require('shelljs');
|
||||
const yargs = require('yargs');
|
||||
|
||||
const alignPackageVersions = require('../align-package-versions');
|
||||
const {
|
||||
PUBLISH_PACKAGES_TAG,
|
||||
GENERIC_COMMIT_MESSAGE,
|
||||
@@ -157,76 +158,80 @@ const main = async () => {
|
||||
.then(() => echo());
|
||||
}
|
||||
|
||||
if (checkForGitChanges()) {
|
||||
await inquirer
|
||||
.prompt([
|
||||
{
|
||||
type: 'list',
|
||||
name: 'commitChoice',
|
||||
message: 'Do you want to submit a commit with these changes?',
|
||||
choices: [
|
||||
{
|
||||
name: 'Yes, with generic message',
|
||||
value: COMMIT_WITH_GENERIC_MESSAGE_CHOICE,
|
||||
},
|
||||
{
|
||||
name: 'Yes, with custom message',
|
||||
value: COMMIT_WITH_CUSTOM_MESSAGE_CHOICE,
|
||||
},
|
||||
{
|
||||
name: 'No',
|
||||
value: NO_COMMIT_CHOICE,
|
||||
},
|
||||
],
|
||||
},
|
||||
])
|
||||
.then(({commitChoice}) => {
|
||||
switch (commitChoice) {
|
||||
case NO_COMMIT_CHOICE: {
|
||||
echo('Not submitting a commit, but keeping all changes');
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMIT_WITH_GENERIC_MESSAGE_CHOICE: {
|
||||
exec(`git commit -am "${GENERIC_COMMIT_MESSAGE}"`, {
|
||||
cwd: ROOT_LOCATION,
|
||||
silent: true,
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMIT_WITH_CUSTOM_MESSAGE_CHOICE: {
|
||||
// exec from shelljs currently does not support interactive input
|
||||
// https://github.com/shelljs/shelljs/wiki/FAQ#running-interactive-programs-with-exec
|
||||
execSync('git commit -a', {cwd: ROOT_LOCATION, stdio: 'inherit'});
|
||||
|
||||
const enteredCommitMessage = exec(
|
||||
'git log -n 1 --format=format:%B',
|
||||
{
|
||||
cwd: ROOT_LOCATION,
|
||||
silent: true,
|
||||
},
|
||||
).stdout.trim();
|
||||
const commitMessageWithTag =
|
||||
enteredCommitMessage + `\n\n${PUBLISH_PACKAGES_TAG}`;
|
||||
|
||||
exec(`git commit --amend -m "${commitMessageWithTag}"`, {
|
||||
cwd: ROOT_LOCATION,
|
||||
silent: true,
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
throw new Error('');
|
||||
}
|
||||
})
|
||||
.then(() => echo());
|
||||
if (!checkForGitChanges()) {
|
||||
echo('No changes have been made. Finishing the process...');
|
||||
exit(0);
|
||||
}
|
||||
|
||||
echo('Aligning new versions across monorepo...');
|
||||
alignPackageVersions();
|
||||
echo(chalk.green('Done!\n'));
|
||||
|
||||
await inquirer
|
||||
.prompt([
|
||||
{
|
||||
type: 'list',
|
||||
name: 'commitChoice',
|
||||
message: 'Do you want to submit a commit with these changes?',
|
||||
choices: [
|
||||
{
|
||||
name: 'Yes, with generic message',
|
||||
value: COMMIT_WITH_GENERIC_MESSAGE_CHOICE,
|
||||
},
|
||||
{
|
||||
name: 'Yes, with custom message',
|
||||
value: COMMIT_WITH_CUSTOM_MESSAGE_CHOICE,
|
||||
},
|
||||
{
|
||||
name: 'No',
|
||||
value: NO_COMMIT_CHOICE,
|
||||
},
|
||||
],
|
||||
},
|
||||
])
|
||||
.then(({commitChoice}) => {
|
||||
switch (commitChoice) {
|
||||
case NO_COMMIT_CHOICE: {
|
||||
echo('Not submitting a commit, but keeping all changes');
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMIT_WITH_GENERIC_MESSAGE_CHOICE: {
|
||||
exec(`git commit -am "${GENERIC_COMMIT_MESSAGE}"`, {
|
||||
cwd: ROOT_LOCATION,
|
||||
silent: true,
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMIT_WITH_CUSTOM_MESSAGE_CHOICE: {
|
||||
// exec from shelljs currently does not support interactive input
|
||||
// https://github.com/shelljs/shelljs/wiki/FAQ#running-interactive-programs-with-exec
|
||||
execSync('git commit -a', {cwd: ROOT_LOCATION, stdio: 'inherit'});
|
||||
|
||||
const enteredCommitMessage = exec('git log -n 1 --format=format:%B', {
|
||||
cwd: ROOT_LOCATION,
|
||||
silent: true,
|
||||
}).stdout.trim();
|
||||
const commitMessageWithTag =
|
||||
enteredCommitMessage + `\n\n${PUBLISH_PACKAGES_TAG}`;
|
||||
|
||||
exec(`git commit --amend -m "${commitMessageWithTag}"`, {
|
||||
cwd: ROOT_LOCATION,
|
||||
silent: true,
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
throw new Error('');
|
||||
}
|
||||
})
|
||||
.then(() => echo());
|
||||
|
||||
echo(chalk.green('Successfully finished the process of bumping packages'));
|
||||
exit(0);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user