react/scripts/release/build-commands/build-artifacts.js
Brian Vaughn c371c152ab Release script (#11223)
* First chunk of new release script

* Re-ordered build steps to combine error codes and releases

* Reorganized build files; added stub publish script

* First pass at publis script. Also collect and print dry-run commits/publish commands.

* Deleted old react-release-manager scripts

* Cleaned up release package.json

* Basic README instructions

* Removed unnecessary 'async' keyword from a method

* Wordsmithing

* Tweaked README

* Renamed build -> build-commands and publish -> publish-commands to avoid conflict with .gitignore

* Bump pre-release package versions differently

* Prettier

* Improved CircleCI API token setup instructions message

* Lint fix

* Typofix
2017-10-16 15:01:14 -07:00

33 lines
945 B
JavaScript

#!/usr/bin/env node
'use strict';
const {exec} = require('child-process-promise');
const {execRead, execUnlessDry, logPromise} = require('../utils');
const run = async ({cwd, dry, version}) => {
await exec('yarn build -- --extract-errors', {cwd});
const modifiedFiles = await execRead('git ls-files -m', {cwd});
if (modifiedFiles.includes('scripts/error-codes/codes.json')) {
await execUnlessDry('git add scripts/error-codes/codes.json', {cwd, dry});
await execUnlessDry(
`git commit -m "Update error codes for ${version} release"`,
{cwd, dry}
);
}
if (modifiedFiles.includes('scripts/rollup/results.json')) {
await execUnlessDry('git add scripts/rollup/results.json', {cwd, dry});
await execUnlessDry(
`git commit -m "Update bundle sizes for ${version} release"`,
{cwd, dry}
);
}
};
module.exports = async params => {
return logPromise(run(params), 'Building artifacts');
};