1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-11-19 20:31:46 +02:00

Tools: Simplify root workspace build

This commit is contained in:
Laurent Cozic 2023-04-06 12:11:45 +02:00
parent eca0f92dff
commit 5c2640f88f
4 changed files with 41 additions and 11 deletions

View File

@ -1,24 +1,52 @@
const gulp = require('gulp');
const { execCommand } = require('@joplin/utils');
const execa = require('execa');
const { stdout } = require('process');
const execCommand = async (executableName, args, options = null) => {
options = {
showInput: true,
showStdout: true,
showStderr: true,
quiet: false,
...options,
};
if (options.quiet) {
options.showInput = false;
options.showStdout = false;
options.showStderr = false;
}
if (options.showInput) {
stdout.write(`> ${executableName} ${args.join(' ')}\n`);
}
const promise = execa(executableName, args);
if (options.showStdout && promise.stdout) promise.stdout.pipe(process.stdout);
if (options.showStderr && promise.stderr) promise.stderr.pipe(process.stderr);
const result = await promise;
return result.stdout.trim();
};
const tasks = {
completePublishAll: {
fn: async () => {
await execCommand(['git', 'add', '-A']);
await execCommand(['git', 'commit', '-m', 'Releasing sub-packages']);
await execCommand('git', ['add', '-A']);
await execCommand('git', ['commit', '-m', 'Releasing sub-packages']);
// Lerna does some unnecessary auth check that doesn't work with
// automation tokens, thus the --no-verify-access. Automation token
// is still used for access when publishing even with this flag
// (publishing would fail otherwise).
// https://github.com/lerna/lerna/issues/2788
await execCommand(['lerna', 'publish', 'from-package', '-y', '--no-verify-access']);
await execCommand('lerna', ['publish', 'from-package', '-y', '--no-verify-access']);
await execCommand(['yarn', 'install']);
await execCommand(['git', 'add', '-A']);
await execCommand(['git', 'commit', '-m', 'Lock file']);
await execCommand('yarn', ['install']);
await execCommand('git', ['add', '-A']);
await execCommand('git', ['commit', '-m', 'Lock file']);
await execCommand(['git', 'push']);
await execCommand('git', ['push']);
},
},
build: {
@ -31,9 +59,9 @@ const tasks = {
// faster, especially when having to rebuild after adding a
// dependency.
if (process.env.BUILD_SEQUENCIAL === '1') {
await execCommand(['yarn', 'run', 'buildSequential']);
await execCommand('yarn', ['run', 'buildSequential']);
} else {
await execCommand(['yarn', 'run', 'buildParallel']);
await execCommand('yarn', ['run', 'buildParallel']);
}
},
},

View File

@ -75,6 +75,7 @@
"eslint-plugin-jest": "27.2.1",
"eslint-plugin-promise": "6.1.1",
"eslint-plugin-react": "7.32.0",
"execa": "5.1.1",
"fs-extra": "11.1.1",
"glob": "8.1.0",
"gulp": "4.0.2",

View File

@ -38,7 +38,7 @@ export default async (command: string | string[], options: ExecCommandOptions |
args.splice(0, 1);
const promise = execa(executableName, args);
if (options.showStdout && promise.stdout) promise.stdout.pipe(process.stdout);
if (options.showStderr && promise.stdout) promise.stdout.pipe(process.stderr);
if (options.showStderr && promise.stderr) promise.stderr.pipe(process.stderr);
const result = await promise;
return result.stdout.trim();
};

View File

@ -28910,6 +28910,7 @@ __metadata:
eslint-plugin-jest: 27.2.1
eslint-plugin-promise: 6.1.1
eslint-plugin-react: 7.32.0
execa: 5.1.1
fs-extra: 11.1.1
glob: 8.1.0
gulp: 4.0.2