1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-21 09:38:01 +02:00
joplin/gulpfile.js
2023-04-06 11:29:59 +02:00

45 lines
1.5 KiB
JavaScript

const gulp = require('gulp');
const { execCommand } = require('@joplin/utils');
const tasks = {
completePublishAll: {
fn: async () => {
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(['yarn', 'install']);
await execCommand(['git', 'add', '-A']);
await execCommand(['git', 'commit', '-m', 'Lock file']);
await execCommand(['git', 'push']);
},
},
build: {
fn: async () => {
// Building everything in parallel seems to be unreliable on CI as
// certain scripts randomly fail with missing files or folder, or
// cannot delete certain directories (eg. copyPluginAssets or
// copyApplicationAssets). Because of this, on CI, we run the build
// sequencially. Locally we run it in parallel, which is much
// faster, especially when having to rebuild after adding a
// dependency.
if (process.env.BUILD_SEQUENCIAL === '1') {
await execCommand(['yarn', 'run', 'buildSequential']);
} else {
await execCommand(['yarn', 'run', 'buildParallel']);
}
},
},
};
for (const taskName in tasks) {
gulp.task(taskName, tasks[taskName].fn);
}