Skip to content

Commit

Permalink
Merge pull request #36323 from hoxyq/pick/fixing-ci-packages-bumping-…
Browse files Browse the repository at this point in the history
…scripts

Cherry-picking changes in CI scripts for packages versions bumping
  • Loading branch information
hoxyq authored Mar 2, 2023
2 parents 20a6fbd + 9c4d0a8 commit 4a0b11a
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 11 deletions.
3 changes: 2 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1547,9 +1547,10 @@ jobs:
echo "Nightly build run"
find_and_publish_bumped_packages:
executor: reactnativeandroid
executor: nodelts
steps:
- checkout
- run_yarn
- run:
name: Set NPM auth token
command: echo "//registry.npmjs.org/:_authToken=${CIRCLE_NPM_TOKEN}" > ~/.npmrc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

const {spawnSync} = require('child_process');

const {BUMP_COMMIT_MESSAGE} = require('../constants');
const {PUBLISH_PACKAGES_TAG} = require('../constants');
const forEachPackage = require('../for-each-package');
const findAndPublishAllBumpedPackages = require('../find-and-publish-all-bumped-packages');

Expand All @@ -31,7 +31,7 @@ describe('findAndPublishAllBumpedPackages', () => {
}));

spawnSync.mockImplementationOnce(() => ({
stdout: BUMP_COMMIT_MESSAGE,
stdout: `This is my commit message\n\n${PUBLISH_PACKAGES_TAG}`,
}));

expect(() => findAndPublishAllBumpedPackages()).toThrow(
Expand Down
19 changes: 17 additions & 2 deletions scripts/monorepo/bump-all-updated-packages/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
*/

const chalk = require('chalk');
const {execSync} = require('child_process');
const inquirer = require('inquirer');
const path = require('path');
const {echo, exec, exit} = require('shelljs');
const yargs = require('yargs');

const {BUMP_COMMIT_MESSAGE} = require('../constants');
const {PUBLISH_PACKAGES_TAG} = require('../constants');
const forEachPackage = require('../for-each-package');
const checkForGitChanges = require('../check-for-git-changes');
const bumpPackageVersion = require('./bump-package-version');
Expand Down Expand Up @@ -167,7 +168,21 @@ const main = async () => {
return;
}

exec(`git commit -a -m "${BUMP_COMMIT_MESSAGE}"`, {cwd: ROOT_LOCATION});
// 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,
});
})
.then(() => echo());
}
Expand Down
4 changes: 2 additions & 2 deletions scripts/monorepo/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
* @format
*/

const BUMP_COMMIT_MESSAGE = '[ci][monorepo] bump package versions';
const PUBLISH_PACKAGES_TAG = '#publish-packages-to-npm';

module.exports = {BUMP_COMMIT_MESSAGE};
module.exports = {PUBLISH_PACKAGES_TAG};
8 changes: 4 additions & 4 deletions scripts/monorepo/find-and-publish-all-bumped-packages.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
const path = require('path');
const {spawnSync} = require('child_process');

const {BUMP_COMMIT_MESSAGE} = require('./constants');
const {PUBLISH_PACKAGES_TAG} = require('./constants');
const forEachPackage = require('./for-each-package');

const ROOT_LOCATION = path.join(__dirname, '..', '..');
Expand Down Expand Up @@ -79,10 +79,10 @@ const findAndPublishAllBumpedPackages = () => {
process.exit(1);
}

const hasSpecificCommitMessage =
commitMessage.startsWith(BUMP_COMMIT_MESSAGE);
const hasSpecificPublishTag =
commitMessage.includes(PUBLISH_PACKAGES_TAG);

if (!hasSpecificCommitMessage) {
if (!hasSpecificPublishTag) {
throw new Error(
`Package ${packageManifest.name} was updated, but not through CI script`,
);
Expand Down

0 comments on commit 4a0b11a

Please sign in to comment.