main
js 52 lines 1.84 KB
Raw
1 #!/usr/bin/env node
2
3 'use strict';
4
5 const {tmpdir} = require('os');
6 const {join} = require('path');
7 const {getBuildInfo, handleError} = require('./utils');
8
9 // This script is an escape hatch!
10 // It exists for special case manual builds.
11 // The typical suggested release process is to create a "next" build from a CI artifact.
12 // This build script is optimized for speed and simplicity.
13 // It doesn't run all of the tests that the CI environment runs.
14 // You're expected to run those manually before publishing a release.
15
16 const addBuildInfoJSON = require('./build-release-locally-commands/add-build-info-json');
17 const buildArtifacts = require('./build-release-locally-commands/build-artifacts');
18 const confirmAutomatedTesting = require('./build-release-locally-commands/confirm-automated-testing');
19 const copyRepoToTempDirectory = require('./build-release-locally-commands/copy-repo-to-temp-directory');
20 const npmPackAndUnpack = require('./build-release-locally-commands/npm-pack-and-unpack');
21 const printPrereleaseSummary = require('./shared-commands/print-prerelease-summary');
22 const updateVersionNumbers = require('./build-release-locally-commands/update-version-numbers');
23
24 const run = async () => {
25 try {
26 const cwd = join(__dirname, '..', '..');
27 const {branch, checksum, commit, reactVersion, version} =
28 await getBuildInfo();
29 const tempDirectory = join(tmpdir(), `react-${commit}`);
30 const params = {
31 branch,
32 checksum,
33 commit,
34 cwd,
35 reactVersion,
36 tempDirectory,
37 version,
38 };
39
40 await confirmAutomatedTesting(params);
41 await copyRepoToTempDirectory(params);
42 await updateVersionNumbers(params);
43 await addBuildInfoJSON(params);
44 await buildArtifacts(params);
45 await npmPackAndUnpack(params);
46 await printPrereleaseSummary(params, false);
47 } catch (error) {
48 handleError(error);
49 }
50 };
51
52 run();