react/scripts/release/build-commands/print-post-build-summary.js

56 lines
1.8 KiB
JavaScript

#!/usr/bin/env node
'use strict';
const chalk = require('chalk');
const {join, relative} = require('path');
const {getUnexecutedCommands} = require('../utils');
const CHANGELOG_PATH =
'https://github.com/facebook/react/edit/master/CHANGELOG.md';
module.exports = ({cwd, dry, path, version}) => {
const publishPath = relative(
process.env.PWD,
join(__dirname, '../publish.js')
);
const command =
`${publishPath} -v ${version}` +
(path ? ` -p ${path}` : '') +
(dry ? ' --dry' : '');
const packagingFixturesPath = join(cwd, 'fixtures/packaging');
const standaloneFixturePath = join(
cwd,
'fixtures/packaging/babel-standalone/dev.html'
);
console.log(
chalk`
{green.bold Build successful!}
${getUnexecutedCommands()}
Next there are a couple of manual steps:
{bold.underline Step 1: Update the CHANGELOG}
Here are a few things to keep in mind:
• The changes should be easy to understand. (Friendly one-liners are better than PR titles.)
• Make sure all contributors are credited.
• Verify that the markup is valid by previewing it in the editor: {blue.bold ${CHANGELOG_PATH}}
{bold.underline Step 2: Smoke test the packages}
1. Open {yellow.bold ${standaloneFixturePath}} in the browser.
2. It should say {italic "Hello world!"}
3. Next go to {yellow.bold ${packagingFixturesPath}} and run {bold node build-all.js}
4. Install the "serve" module ({bold npm install -g serve})
5. Go to the repo root and {bold serve -s .}
6. Open {blue.bold http://localhost:5000/fixtures/packaging}
7. Verify every iframe shows {italic "Hello world!"}
After completing the above steps, resume the release process by running:
{yellow.bold ${command}}
`.replace(/\n +/g, '\n')
);
};