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 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 = { | const tasks = { | ||||||
| 	completePublishAll: { | 	completePublishAll: { | ||||||
| 		fn: async () => { | 		fn: async () => { | ||||||
| 			await execCommand(['git', 'add', '-A']); | 			await execCommand('git', ['add', '-A']); | ||||||
| 			await execCommand(['git', 'commit', '-m', 'Releasing sub-packages']); | 			await execCommand('git', ['commit', '-m', 'Releasing sub-packages']); | ||||||
|  |  | ||||||
| 			// Lerna does some unnecessary auth check that doesn't work with | 			// Lerna does some unnecessary auth check that doesn't work with | ||||||
| 			// automation tokens, thus the --no-verify-access. Automation token | 			// automation tokens, thus the --no-verify-access. Automation token | ||||||
| 			// is still used for access when publishing even with this flag | 			// is still used for access when publishing even with this flag | ||||||
| 			// (publishing would fail otherwise). | 			// (publishing would fail otherwise). | ||||||
| 			// https://github.com/lerna/lerna/issues/2788 | 			// 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('yarn', ['install']); | ||||||
| 			await execCommand(['git', 'add', '-A']); | 			await execCommand('git', ['add', '-A']); | ||||||
| 			await execCommand(['git', 'commit', '-m', 'Lock file']); | 			await execCommand('git', ['commit', '-m', 'Lock file']); | ||||||
|  |  | ||||||
| 			await execCommand(['git', 'push']); | 			await execCommand('git', ['push']); | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	build: { | 	build: { | ||||||
| @@ -31,9 +59,9 @@ const tasks = { | |||||||
| 			// faster, especially when having to rebuild after adding a | 			// faster, especially when having to rebuild after adding a | ||||||
| 			// dependency. | 			// dependency. | ||||||
| 			if (process.env.BUILD_SEQUENCIAL === '1') { | 			if (process.env.BUILD_SEQUENCIAL === '1') { | ||||||
| 				await execCommand(['yarn', 'run', 'buildSequential']); | 				await execCommand('yarn', ['run', 'buildSequential']); | ||||||
| 			} else { | 			} else { | ||||||
| 				await execCommand(['yarn', 'run', 'buildParallel']); | 				await execCommand('yarn', ['run', 'buildParallel']); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
|   | |||||||
| @@ -75,6 +75,7 @@ | |||||||
|     "eslint-plugin-jest": "27.2.1", |     "eslint-plugin-jest": "27.2.1", | ||||||
|     "eslint-plugin-promise": "6.1.1", |     "eslint-plugin-promise": "6.1.1", | ||||||
|     "eslint-plugin-react": "7.32.0", |     "eslint-plugin-react": "7.32.0", | ||||||
|  |     "execa": "5.1.1", | ||||||
|     "fs-extra": "11.1.1", |     "fs-extra": "11.1.1", | ||||||
|     "glob": "8.1.0", |     "glob": "8.1.0", | ||||||
|     "gulp": "4.0.2", |     "gulp": "4.0.2", | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ export default async (command: string | string[], options: ExecCommandOptions | | |||||||
| 	args.splice(0, 1); | 	args.splice(0, 1); | ||||||
| 	const promise = execa(executableName, args); | 	const promise = execa(executableName, args); | ||||||
| 	if (options.showStdout && promise.stdout) promise.stdout.pipe(process.stdout); | 	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; | 	const result = await promise; | ||||||
| 	return result.stdout.trim(); | 	return result.stdout.trim(); | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -28910,6 +28910,7 @@ __metadata: | |||||||
|     eslint-plugin-jest: 27.2.1 |     eslint-plugin-jest: 27.2.1 | ||||||
|     eslint-plugin-promise: 6.1.1 |     eslint-plugin-promise: 6.1.1 | ||||||
|     eslint-plugin-react: 7.32.0 |     eslint-plugin-react: 7.32.0 | ||||||
|  |     execa: 5.1.1 | ||||||
|     fs-extra: 11.1.1 |     fs-extra: 11.1.1 | ||||||
|     glob: 8.1.0 |     glob: 8.1.0 | ||||||
|     gulp: 4.0.2 |     gulp: 4.0.2 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user