You've already forked joplin
							
							
				mirror of
				https://github.com/laurent22/joplin.git
				synced 2025-10-31 00:07:48 +02:00 
			
		
		
		
	Tools: Simplify root workspace build
This commit is contained in:
		
							
								
								
									
										48
									
								
								gulpfile.js
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								gulpfile.js
									
									
									
									
									
								
							| @@ -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']); | ||||
| 			} | ||||
| 		}, | ||||
| 	}, | ||||
|   | ||||
| @@ -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", | ||||
|   | ||||
| @@ -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(); | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user