[Release script] Use `execa`
parent
54b1f8562d
commit
70604f1fd1
|
@ -2,8 +2,8 @@
|
|||
"private": true,
|
||||
"dependencies": {
|
||||
"chalk": "2.4.1",
|
||||
"child-process-promise": "2.2.1",
|
||||
"dedent": "0.7.0",
|
||||
"execa": "0.10.0",
|
||||
"minimist": "1.2.0",
|
||||
"node-fetch": "2.1.2",
|
||||
"prs-merged-since": "1.0.1",
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
"use strict";
|
||||
|
||||
const { exec, spawn } = require("child-process-promise");
|
||||
const execa = require("execa");
|
||||
const { logPromise } = require("../utils");
|
||||
|
||||
async function format() {
|
||||
await exec("yarn lint --fix");
|
||||
await exec("yarn lint-docs --fix");
|
||||
await execa("yarn", ["lint", "--fix"]);
|
||||
await execa("yarn", ["lint-docs", "--fix"]);
|
||||
}
|
||||
|
||||
async function commit(version) {
|
||||
await spawn("git", [
|
||||
await execa("git", [
|
||||
"commit",
|
||||
"-am",
|
||||
`Bump Prettier dependency to ${version}`
|
||||
]);
|
||||
await exec("git push");
|
||||
await execa("git", ["push"]);
|
||||
}
|
||||
|
||||
module.exports = async function({ dry, version }) {
|
||||
|
@ -24,7 +24,7 @@ module.exports = async function({ dry, version }) {
|
|||
|
||||
await logPromise(
|
||||
"Installing Prettier",
|
||||
spawn("yarn", ["add", "--dev", `prettier@${version}`])
|
||||
execa("yarn", ["add", "--dev", `prettier@${version}`])
|
||||
);
|
||||
|
||||
await logPromise("Updating files", format());
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
"use strict";
|
||||
|
||||
const { exec } = require("child-process-promise");
|
||||
const execa = require("execa");
|
||||
|
||||
module.exports = async function() {
|
||||
const status = (await exec("git status --porcelain")).stdout;
|
||||
const status = await execa.stdout("git", ["status", "--porcelain"]);
|
||||
|
||||
if (status) {
|
||||
throw Error(
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
"use strict";
|
||||
|
||||
const { exec } = require("child-process-promise");
|
||||
const execa = require("execa");
|
||||
const { logPromise } = require("../utils");
|
||||
|
||||
async function install() {
|
||||
await exec("rm -rf node_modules");
|
||||
await exec("yarn install");
|
||||
await execa("rm", ["-rf", "node_modules"]);
|
||||
await execa("yarn", ["install"]);
|
||||
|
||||
const status = (await exec("git ls-files -m")).stdout.trim();
|
||||
const status = await execa.stdout("git", ["ls-files", "-m"]);
|
||||
if (status) {
|
||||
throw Error(
|
||||
"The lockfile needs to be updated, commit it before making the release."
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
const chalk = require("chalk");
|
||||
const dedent = require("dedent");
|
||||
const fetch = require("node-fetch");
|
||||
const { exec } = require("child-process-promise");
|
||||
const { logPromise, waitForEnter } = require("../utils");
|
||||
const execa = require("execa");
|
||||
const { logPromise } = require("../utils");
|
||||
|
||||
const SCHEMA_REPO = "SchemaStore/schemastore";
|
||||
const SCHEMA_PATH = "src/schemas/json/prettierrc.json";
|
||||
|
@ -14,7 +14,7 @@ const EDIT_URL = `https://github.com/${SCHEMA_REPO}/edit/master/${SCHEMA_PATH}`;
|
|||
// Any optional or manual step can be warned in this script.
|
||||
|
||||
async function checkSchema() {
|
||||
const schema = (await exec("node scripts/generate-schema.js")).stdout.trim();
|
||||
const schema = await execa.stdout("node scripts/generate-schema.js");
|
||||
const remoteSchema = await logPromise(
|
||||
"Checking current schema in SchemaStore",
|
||||
fetch(RAW_URL)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
const chalk = require("chalk");
|
||||
const dedent = require("dedent");
|
||||
const { exec } = require("child-process-promise");
|
||||
const execa = require("execa");
|
||||
const { logPromise, waitForEnter } = require("../utils");
|
||||
|
||||
module.exports = async function({ dry, version }) {
|
||||
|
@ -10,7 +10,10 @@ module.exports = async function({ dry, version }) {
|
|||
return;
|
||||
}
|
||||
|
||||
await logPromise("Publishing to npm", exec("npm publish", { cwd: "./dist" }));
|
||||
await logPromise(
|
||||
"Publishing to npm",
|
||||
execa("npm", ["publish"], { cwd: "./dist" })
|
||||
);
|
||||
|
||||
console.log(
|
||||
dedent(chalk`
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
"use strict";
|
||||
|
||||
const { exec, spawn } = require("child-process-promise");
|
||||
const execa = require("execa");
|
||||
const { logPromise } = require("../utils");
|
||||
|
||||
async function pushGit({ version }) {
|
||||
await spawn("git", ["commit", "-am", `Release ${version}`]);
|
||||
await spawn("git", ["tag", "-a", version, "-m", `Release ${version}`]);
|
||||
await exec("git push");
|
||||
await exec("git push --tags");
|
||||
await execa("git", ["commit", "-am", `Release ${version}`]);
|
||||
await execa("git", ["tag", "-a", version, "-m", `Release ${version}`]);
|
||||
await execa("git", ["push"]);
|
||||
await execa("git", ["push", "--tags"]);
|
||||
}
|
||||
|
||||
module.exports = function(params) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
"use strict";
|
||||
|
||||
const { exec } = require("child-process-promise");
|
||||
const execa = require("execa");
|
||||
const { readFileSync, writeFileSync } = require("fs");
|
||||
const { logPromise, readJson, writeJson } = require("../utils");
|
||||
|
||||
|
@ -22,6 +22,6 @@ module.exports = async function(params) {
|
|||
await logPromise("Bumping version", bump(params));
|
||||
await logPromise(
|
||||
"Updating integration snapshots",
|
||||
exec("yarn test-integration -u")
|
||||
execa("yarn", ["test-integration", "-u"])
|
||||
);
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@ require("readline").emitKeypressEvents(process.stdin);
|
|||
|
||||
const chalk = require("chalk");
|
||||
const fs = require("fs");
|
||||
const { spawn } = require("child-process-promise");
|
||||
const execa = require("execa");
|
||||
const stringWidth = require("string-width");
|
||||
|
||||
const OK = chalk.bgGreen.black(" DONE ");
|
||||
|
@ -34,9 +34,7 @@ function logPromise(name, promise) {
|
|||
}
|
||||
|
||||
function runYarn(script) {
|
||||
return spawn("yarn", ["--silent", script], {
|
||||
capture: ["stdout", "stderr"]
|
||||
}).catch(error => {
|
||||
return execa("yarn", ["--silent", script]).catch(error => {
|
||||
throw Error(`\`yarn ${script}\` failed\n${error.stdout}`);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -55,14 +55,6 @@ chalk@2.4.1, chalk@^2.0.1, chalk@^2.3.1:
|
|||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.3.0"
|
||||
|
||||
child-process-promise@2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/child-process-promise/-/child-process-promise-2.2.1.tgz#4730a11ef610fad450b8f223c79d31d7bdad8074"
|
||||
dependencies:
|
||||
cross-spawn "^4.0.2"
|
||||
node-version "^1.0.0"
|
||||
promise-polyfill "^6.0.1"
|
||||
|
||||
cli-cursor@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
|
||||
|
@ -99,13 +91,6 @@ color-name@^1.1.1:
|
|||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
||||
|
||||
cross-spawn@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
|
||||
dependencies:
|
||||
lru-cache "^4.0.1"
|
||||
which "^1.2.9"
|
||||
|
||||
cross-spawn@^5.0.1:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
|
||||
|
@ -114,6 +99,16 @@ cross-spawn@^5.0.1:
|
|||
shebang-command "^1.2.0"
|
||||
which "^1.2.9"
|
||||
|
||||
cross-spawn@^6.0.0:
|
||||
version "6.0.5"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
|
||||
dependencies:
|
||||
nice-try "^1.0.4"
|
||||
path-key "^2.0.1"
|
||||
semver "^5.5.0"
|
||||
shebang-command "^1.2.0"
|
||||
which "^1.2.9"
|
||||
|
||||
debug@3.1.0, debug@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||
|
@ -148,6 +143,18 @@ escape-string-regexp@^1.0.5:
|
|||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||
|
||||
execa@0.10.0:
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50"
|
||||
dependencies:
|
||||
cross-spawn "^6.0.0"
|
||||
get-stream "^3.0.0"
|
||||
is-stream "^1.1.0"
|
||||
npm-run-path "^2.0.0"
|
||||
p-finally "^1.0.0"
|
||||
signal-exit "^3.0.0"
|
||||
strip-eof "^1.0.0"
|
||||
|
||||
execa@^0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
|
||||
|
@ -262,14 +269,14 @@ ms@2.0.0:
|
|||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
||||
nice-try@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4"
|
||||
|
||||
node-fetch@2.1.2, node-fetch@^2.1.1:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5"
|
||||
|
||||
node-version@^1.0.0:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.1.3.tgz#1081c87cce6d2dbbd61d0e51e28c287782678496"
|
||||
|
||||
npm-run-path@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
|
||||
|
@ -329,14 +336,10 @@ path-exists@^3.0.0:
|
|||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
|
||||
|
||||
path-key@^2.0.0:
|
||||
path-key@^2.0.0, path-key@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
||||
|
||||
promise-polyfill@^6.0.1:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057"
|
||||
|
||||
prs-merged-since@1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/prs-merged-since/-/prs-merged-since-1.0.1.tgz#2e9905f0843ec0189c3168a6eb31087982ac47fb"
|
||||
|
@ -364,7 +367,7 @@ restore-cursor@^2.0.0:
|
|||
onetime "^2.0.0"
|
||||
signal-exit "^3.0.2"
|
||||
|
||||
semver@5.5.0:
|
||||
semver@5.5.0, semver@^5.5.0:
|
||||
version "5.5.0"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
||||
|
||||
|
|
Loading…
Reference in New Issue